From 460436c54918d84f6a219055e1c883303944fd03 Mon Sep 17 00:00:00 2001 From: dti-github-bot Date: Thu, 7 Nov 2024 04:56:28 +0000 Subject: [PATCH] Deploy website - based on db4337977a2b2826cf9f0aceed291cdb178477b4 --- 404.html | 8 +-- ...d764c.a9517976.js => 621d764c.9ed941ca.js} | 2 +- assets/js/7d34dd09.7e589333.js | 1 + assets/js/7d34dd09.d9b2c591.js | 1 - assets/js/8750a2c3.1ba63be7.js | 1 + ...87d76.ebb72a75.js => 97c87d76.c8402b41.js} | 2 +- assets/js/main.18876977.js | 2 + ...CENSE.txt => main.18876977.js.LICENSE.txt} | 0 assets/js/main.7a7eb282.js | 2 - assets/js/runtime~main.5de08541.js | 1 + assets/js/runtime~main.90443044.js | 1 - blog/archive/index.html | 8 +-- docs/2020fa/HackOurCampus/index.html | 8 +-- docs/2020fa/assignment1/index.html | 8 +-- docs/2020fa/assignment2/index.html | 8 +-- docs/2020fa/assignment3/index.html | 8 +-- docs/2020fa/assignment4/index.html | 8 +-- docs/2020fa/assignment5/index.html | 8 +-- docs/2020fa/assignments/index.html | 8 +-- docs/2020fa/finalproject/index.html | 8 +-- docs/2020fa/introduction/index.html | 8 +-- docs/2020fa/lecture0/index.html | 8 +-- docs/2020fa/lecture1/index.html | 8 +-- docs/2020fa/lecture10/index.html | 8 +-- docs/2020fa/lecture2/index.html | 8 +-- docs/2020fa/lecture3/index.html | 8 +-- docs/2020fa/lecture4/index.html | 8 +-- docs/2020fa/lecture5/index.html | 8 +-- docs/2020fa/lecture6/index.html | 8 +-- docs/2020fa/lecture7/index.html | 10 ++-- docs/2020fa/lecture8/index.html | 8 +-- docs/2020fa/lecture9/index.html | 8 +-- docs/2020fa/setup-editor/index.html | 8 +-- docs/2020fa/setup-environment/index.html | 8 +-- docs/2020sp/lecture1/index.html | 8 +-- docs/2020sp/lecture10/index.html | 8 +-- docs/2020sp/lecture2/index.html | 8 +-- docs/2020sp/lecture3/index.html | 8 +-- docs/2020sp/lecture4/index.html | 8 +-- docs/2020sp/lecture5/index.html | 8 +-- docs/2020sp/lecture6/index.html | 8 +-- docs/2020sp/lecture7/index.html | 10 ++-- docs/2020sp/lecture8/index.html | 8 +-- docs/2020sp/lecture9/index.html | 8 +-- docs/2021fa/assignment1/index.html | 8 +-- docs/2021fa/assignment2/index.html | 8 +-- docs/2021fa/assignment3/index.html | 8 +-- docs/2021fa/assignment4/index.html | 8 +-- docs/2021fa/assignment5/index.html | 8 +-- docs/2021fa/assignments/index.html | 8 +-- docs/2021fa/finalproject/index.html | 8 +-- docs/2021fa/introduction/index.html | 8 +-- docs/2021fa/lecture1/index.html | 8 +-- docs/2021fa/lecture10/index.html | 8 +-- docs/2021fa/lecture2/index.html | 8 +-- docs/2021fa/lecture3/index.html | 8 +-- docs/2021fa/lecture4/index.html | 8 +-- docs/2021fa/lecture5/index.html | 8 +-- docs/2021fa/lecture6/index.html | 8 +-- docs/2021fa/lecture7/index.html | 10 ++-- docs/2021fa/lecture8/index.html | 8 +-- docs/2021fa/lecture9/index.html | 8 +-- docs/2021fa/setup-editor/index.html | 8 +-- docs/2021fa/setup-environment/index.html | 8 +-- docs/2021sp/assignment1/index.html | 8 +-- docs/2021sp/assignment2/index.html | 8 +-- docs/2021sp/assignment3/index.html | 8 +-- docs/2021sp/assignment4/index.html | 8 +-- docs/2021sp/assignment5/index.html | 8 +-- docs/2021sp/assignments/index.html | 8 +-- docs/2021sp/finalproject/index.html | 8 +-- docs/2021sp/introduction/index.html | 8 +-- docs/2021sp/lecture1/index.html | 8 +-- docs/2021sp/lecture10/index.html | 8 +-- docs/2021sp/lecture2/index.html | 8 +-- docs/2021sp/lecture3/index.html | 8 +-- docs/2021sp/lecture4/index.html | 8 +-- docs/2021sp/lecture5/index.html | 8 +-- docs/2021sp/lecture6/index.html | 8 +-- docs/2021sp/lecture7/index.html | 10 ++-- docs/2021sp/lecture8/index.html | 8 +-- docs/2021sp/lecture9/index.html | 8 +-- docs/2021sp/setup-editor/index.html | 8 +-- docs/2021sp/setup-environment/index.html | 8 +-- docs/2022fa/assignment1/index.html | 8 +-- docs/2022fa/assignment2/index.html | 8 +-- docs/2022fa/assignment3/index.html | 8 +-- docs/2022fa/assignment4/index.html | 8 +-- docs/2022fa/assignments/index.html | 8 +-- docs/2022fa/finalproject/index.html | 8 +-- docs/2022fa/introduction/index.html | 8 +-- docs/2022fa/lecture1/index.html | 8 +-- docs/2022fa/lecture2/index.html | 8 +-- docs/2022fa/lecture3/index.html | 8 +-- docs/2022fa/lecture4/index.html | 8 +-- docs/2022fa/lecture5/index.html | 8 +-- docs/2022fa/lecture6/index.html | 8 +-- docs/2022fa/lecture7/index.html | 10 ++-- docs/2022fa/lecture8/index.html | 8 +-- docs/2022fa/lecture9/index.html | 8 +-- docs/2022fa/setup-editor/index.html | 8 +-- docs/2022fa/setup-environment/index.html | 8 +-- docs/2022sp/assignment1/index.html | 8 +-- docs/2022sp/assignment2/index.html | 8 +-- docs/2022sp/assignment3/index.html | 8 +-- docs/2022sp/assignment4/index.html | 8 +-- docs/2022sp/assignments/index.html | 8 +-- docs/2022sp/finalproject/index.html | 8 +-- docs/2022sp/introduction/index.html | 8 +-- docs/2022sp/lecture1/index.html | 8 +-- docs/2022sp/lecture10/index.html | 8 +-- docs/2022sp/lecture2/index.html | 8 +-- docs/2022sp/lecture3/index.html | 8 +-- docs/2022sp/lecture4/index.html | 8 +-- docs/2022sp/lecture5/index.html | 8 +-- docs/2022sp/lecture6/index.html | 8 +-- docs/2022sp/lecture7/index.html | 10 ++-- docs/2022sp/lecture8/index.html | 8 +-- docs/2022sp/lecture9/index.html | 8 +-- docs/2022sp/setup-editor/index.html | 8 +-- docs/2022sp/setup-environment/index.html | 8 +-- docs/2023fa/assignment1/index.html | 8 +-- docs/2023fa/assignment2/index.html | 8 +-- docs/2023fa/assignment3/index.html | 8 +-- docs/2023fa/assignment4/index.html | 8 +-- docs/2023fa/assignments/index.html | 8 +-- docs/2023fa/finalproject/index.html | 8 +-- docs/2023fa/introduction/index.html | 8 +-- docs/2023fa/lecture5/index.html | 8 +-- docs/2023fa/lecture6/index.html | 8 +-- docs/2023fa/lecture7/index.html | 10 ++-- docs/2023fa/lecture8/index.html | 8 +-- docs/2023fa/lecture9/index.html | 8 +-- docs/2023fa/setup-editor/index.html | 8 +-- docs/2023fa/setup-environment/index.html | 8 +-- docs/2023fa/unit1/index.html | 8 +-- docs/2023fa/unit2/index.html | 8 +-- docs/2023sp/assignment1/index.html | 8 +-- docs/2023sp/assignment2/index.html | 8 +-- docs/2023sp/assignment3/index.html | 8 +-- docs/2023sp/assignment4/index.html | 8 +-- docs/2023sp/assignments/index.html | 8 +-- docs/2023sp/finalproject/index.html | 8 +-- docs/2023sp/introduction/index.html | 8 +-- docs/2023sp/lecture1/index.html | 8 +-- docs/2023sp/lecture10/index.html | 8 +-- docs/2023sp/lecture2/index.html | 8 +-- docs/2023sp/lecture3/index.html | 8 +-- docs/2023sp/lecture4/index.html | 8 +-- docs/2023sp/lecture5/index.html | 8 +-- docs/2023sp/lecture6/index.html | 8 +-- docs/2023sp/lecture7/index.html | 10 ++-- docs/2023sp/lecture8/index.html | 8 +-- docs/2023sp/lecture9/index.html | 8 +-- docs/2023sp/setup-editor/index.html | 8 +-- docs/2023sp/setup-environment/index.html | 8 +-- docs/2024sp/assignment1/index.html | 8 +-- docs/2024sp/assignment2/index.html | 8 +-- docs/2024sp/assignment3/index.html | 8 +-- docs/2024sp/assignment4/index.html | 8 +-- docs/2024sp/assignments/index.html | 8 +-- docs/2024sp/finalproject/index.html | 8 +-- docs/2024sp/introduction/index.html | 8 +-- docs/2024sp/lecture5/index.html | 8 +-- docs/2024sp/lecture6/index.html | 8 +-- docs/2024sp/lecture7/index.html | 10 ++-- docs/2024sp/lecture8/index.html | 8 +-- docs/2024sp/lecture9/index.html | 8 +-- docs/2024sp/setup-editor/index.html | 8 +-- docs/2024sp/setup-environment/index.html | 8 +-- docs/2024sp/unit1/index.html | 8 +-- docs/2024sp/unit2/index.html | 8 +-- docs/assignment1/index.html | 8 +-- docs/assignment2/index.html | 8 +-- docs/assignment3/index.html | 8 +-- docs/assignment4/index.html | 8 +-- docs/assignments/index.html | 10 ++-- docs/finalproject/index.html | 8 +-- docs/introduction/index.html | 8 +-- docs/lecture5/index.html | 10 ++-- docs/lecture6/index.html | 12 ++--- docs/lecture7/index.html | 49 +++++++++++++++++++ docs/setup-editor/index.html | 8 +-- docs/setup-environment/index.html | 8 +-- docs/unit1/index.html | 10 ++-- docs/unit2/index.html | 10 ++-- index.html | 8 +-- sitemap.xml | 2 +- 188 files changed, 776 insertions(+), 726 deletions(-) rename assets/js/{621d764c.a9517976.js => 621d764c.9ed941ca.js} (99%) create mode 100644 assets/js/7d34dd09.7e589333.js delete mode 100644 assets/js/7d34dd09.d9b2c591.js create mode 100644 assets/js/8750a2c3.1ba63be7.js rename assets/js/{97c87d76.ebb72a75.js => 97c87d76.c8402b41.js} (62%) create mode 100644 assets/js/main.18876977.js rename assets/js/{main.7a7eb282.js.LICENSE.txt => main.18876977.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.7a7eb282.js create mode 100644 assets/js/runtime~main.5de08541.js delete mode 100644 assets/js/runtime~main.90443044.js create mode 100644 docs/lecture7/index.html diff --git a/404.html b/404.html index e7fec4f5f..ee0b4262b 100644 --- a/404.html +++ b/404.html @@ -5,13 +5,13 @@ Page Not Found | Trends in Web Dev - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/js/621d764c.a9517976.js b/assets/js/621d764c.9ed941ca.js similarity index 99% rename from assets/js/621d764c.a9517976.js rename to assets/js/621d764c.9ed941ca.js index d893dcd62..4b2ece1cb 100644 --- a/assets/js/621d764c.a9517976.js +++ b/assets/js/621d764c.9ed941ca.js @@ -1 +1 @@ -"use strict";(self.webpackChunktrends_in_web_dev_website=self.webpackChunktrends_in_web_dev_website||[]).push([[9218],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||s;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var c=2;c=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,f=d["".concat(l,".").concat(m)]||d[m]||u[m]||s;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var c=2;c=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(n),h=a,m=u["".concat(l,".").concat(h)]||u[h]||d[h]||i;return n?r.createElement(m,s(s({ref:t},c),{},{components:n})):r.createElement(m,s({ref:t},c))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:a,s[1]=o;for(var p=2;p {\n res.send('Hello World!');\n});\n\napp.listen(port, () => {\n console.log(`Server listening on port ${port}`);\n});\n")),(0,i.kt)("p",null,"Here is a quick example on how to set up the boiler plate code for creating an express server."),(0,i.kt)("p",null,"We start by importing the express function from the ",(0,i.kt)("inlineCode",{parentName:"p"},"express")," framework that we just installed using npm."),(0,i.kt)("p",null,"Then we\u2019re going to create a variable called app. This is just an instance of express, which is used to create an application. In our case, we\u2019re using this instance of express to create our server application."),(0,i.kt)("p",null,"This next line is ",(0,i.kt)("inlineCode",{parentName:"p"},"app.use(express.json())"),". This just automatically parses any incoming requests into JSON objects. This makes it easier to handle data sent from the client."),(0,i.kt)("p",null,"There\u2019s an interesting line ",(0,i.kt)("inlineCode",{parentName:"p"},"app.use(cors());")," This line enables the express app to respond to something called preflight requests. A preflight request is something like an OPTION request sent to the server before the actual request is sent. An OPTION request is an HTTP method that is sent by browsers to find out what methods are allowed by the server. This allows clients to obtain any parameters and requirements for specific resources and server capabilities that might be necessary. This is just an aside and isn\u2019t crucial. If you\u2019re interested in learning more about OPTION requests, come to office hours! Basically, this line allows our server to be accessible to any domain that requests a resource from our server via a browser. This basically relaxes the security applied to an API. These CORS errors can get really painful, so remember to add this line if you run into them."),(0,i.kt)("p",null,"The next section is where we\u2019re actually creating our API endpoints. Using the app instance, we\u2019re going ot create a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," endpoint with the location at the root, which is indicated by the string in the function. Then here is some interesting syntax, which I will go into in more detail later. Essentially, we\u2019re creating a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," endpoint at the root path and then sending a response to the client saying \u201cHello World\u201d"),(0,i.kt)("p",null,"Finally, this last section is where our server application will actually listen for any connections from clients on the specified port, which we indicated before as ",(0,i.kt)("inlineCode",{parentName:"p"},"8080"),". When our server is up and running, we will console log \u201cServer listening on port ",(0,i.kt)("inlineCode",{parentName:"p"},"[insert port number]")," in this case it\u2019s ",(0,i.kt)("inlineCode",{parentName:"p"},"8080"),". This function will constantly listen for any connections being made."),(0,i.kt)("p",null,"When running the application with ",(0,i.kt)("inlineCode",{parentName:"p"},"npm start"),", the server will be listening on ",(0,i.kt)("inlineCode",{parentName:"p"},"http://localhost:[insert port number here]"),"."),(0,i.kt)("h3",{id:"routing"},"Routing"),(0,i.kt)("p",null,"Routing determines how our server responses to a client request to particular endpoint. An endpoint simply consists of a URI (or path) and a specific HTTP request method (",(0,i.kt)("inlineCode",{parentName:"p"},"GET"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"POST"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"PUT"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"DELETE"),")"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.[METHOD]([PATH], [HANDLER])\n")),(0,i.kt)("h4",{id:"get-endpoint"},"GET Endpoint"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.get('/', (req, res) => {\n res.send('Hello World!');\n});\n")),(0,i.kt)("p",null,"Here we go back to the get request that we saw previously. Essentially here again we have a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," request with the path at the root. We could change this string to anything we want. Then the next parameter is the handler, which is a call back function that is executed when the route is matched. So, when the client makes a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," request to the root path of our server running on port 8080, the server will match that request to this function right here and call the handler. The req and res objects are created automatically by the framework and is passed as an argument to route handler functions."),(0,i.kt)("p",null,"The handler takes in the request object and a response object as parameters and executes the body of this function. The request object represents an HTTP request and contains any data that the client may have sent over to the server (query strings, parameters, body, HTTP headers, etc). This isn\u2019t applicable to ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," request since ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," requests are only used to request data. But, we will look at other method types later. The second parameter is the response object which represents the HTTP response object the server will send back to the client. So, this in example, when the client request is routed to this handler, the server will send an object containing the string ",(0,i.kt)("inlineCode",{parentName:"p"},"Hello World.")),(0,i.kt)("h4",{id:"post-endpoint"},"POST Endpoint"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.post('/', (req, res) => {\n const body = req.body\nres.send(\u2018This is a POST request\u2019)\n})\n")),(0,i.kt)("p",null,"Here we have a ",(0,i.kt)("inlineCode",{parentName:"p"},"POST")," request with the path at the root. We are allowed to have multiple endpoints with the same path they just have to be different HTTP methods. So, we can have a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," endpoint and a ",(0,i.kt)("inlineCode",{parentName:"p"},"POST")," endpoint at the same path. But, we cannot have two ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," endpoints with the same path."),(0,i.kt)("h4",{id:"put-endpoint"},"PUT Endpoint"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.put('/user', (req, res) => {\n const body = req.body;\n const username = req.body.username;\n res.send('This is a PUT request');\n});\n")),(0,i.kt)("p",null,"Here we have a ",(0,i.kt)("inlineCode",{parentName:"p"},"PUT")," request with the path at ",(0,i.kt)("inlineCode",{parentName:"p"},"/user"),".\nHere the handler will get the variable called body to the req.body, which represents any data that the client may have sent over to the server at this endpoint. The handler also sets a constant called username to the username parameter sent in through the body of the client\u2019s HTTP request. Then the handler will send a response back saying ",(0,i.kt)("inlineCode",{parentName:"p"},"This is a PUT request.")," A ",(0,i.kt)("inlineCode",{parentName:"p"},"PUT")," request is typically used for updating data, we will take more of a deep dive into all this in the next lecture when we talk about databases."),(0,i.kt)("h4",{id:"delete-endpoint"},"DELETE Endpoint"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.delete('/user/:id', (req, res) => {\n res.send('This is a delete request for id ${req.params.id}');\n});\n")),(0,i.kt)("p",null,"Here we have a ",(0,i.kt)("inlineCode",{parentName:"p"},"DELETE")," request with the path at \u201c/user/:id\u201d. This is an interesting path because we have :id. Here we have defined a route that takes in a parameter called id. When we visit something like /user/1, the server will respond with ",(0,i.kt)("inlineCode",{parentName:"p"},"This is a DELETE request for id 1.")," You can include parameters into any endpoint path for your server and read them from the request object sent from the client\u2019s HTTP request. This is an example of a dynamic route."),(0,i.kt)("h2",{id:"postman"},"Postman"),(0,i.kt)("p",null,"In order to test our APIs and make sure that they are responding appropriately for certain routes, Postman is a great tool for sending and receiving API requests directly to and from the server."),(0,i.kt)("p",null,"Postman is an API platform used for building and using APIs."),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://www.postman.com/"},"Download here")),(0,i.kt)("h2",{id:"sample-code"},"Sample code"),(0,i.kt)("p",null,"This week's sample code starter can be found in the files under ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/cornell-dti/trends-mono-fa24/tree/main/demos/lec6"},"this directory"),"."),(0,i.kt)("p",null,"The solution will be pushed to the same directory after lecture."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7d34dd09.d9b2c591.js b/assets/js/7d34dd09.d9b2c591.js deleted file mode 100644 index af60a0d9d..000000000 --- a/assets/js/7d34dd09.d9b2c591.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunktrends_in_web_dev_website=self.webpackChunktrends_in_web_dev_website||[]).push([[3188],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return h}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=p(n),h=a,m=u["".concat(l,".").concat(h)]||u[h]||c[h]||i;return n?r.createElement(m,s(s({ref:t},d),{},{components:n})):r.createElement(m,s({ref:t},d))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:a,s[1]=o;for(var p=2;p {\n res.send('Hello World!');\n});\n\napp.listen(port, () => {\n console.log(`Server listening on port ${port}`);\n});\n")),(0,i.kt)("p",null,"Here is a quick example on how to set up the boiler plate code for creating an express server."),(0,i.kt)("p",null,"We start by importing the express function from the ",(0,i.kt)("inlineCode",{parentName:"p"},"express")," framework that we just installed using npm."),(0,i.kt)("p",null,"Then we\u2019re going to create a variable called app. This is just an instance of express, which is used to create an application. In our case, we\u2019re using this instance of express to create our server application."),(0,i.kt)("p",null,"This next line is ",(0,i.kt)("inlineCode",{parentName:"p"},"app.use(express.json())"),". This just automatically parses any incoming requests into JSON objects. This makes it easier to handle data sent from the client."),(0,i.kt)("p",null,"There\u2019s an interesting line ",(0,i.kt)("inlineCode",{parentName:"p"},"app.use(cors());")," This line enables the express app to respond to something called preflight requests. A preflight request is something like an OPTION request sent to the server before the actual request is sent. An OPTION request is an HTTP method that is sent by browsers to find out what methods are allowed by the server. This allows clients to obtain any parameters and requirements for specific resources and server capabilities that might be necessary. This is just an aside and isn\u2019t crucial. If you\u2019re interested in learning more about OPTION requests, come to office hours! Basically, this line allows our server to be accessible to any domain that requests a resource from our server via a browser. This basically relaxes the security applied to an API. These CORS errors can get really painful, so remember to add this line if you run into them."),(0,i.kt)("p",null,"The next section is where we\u2019re actually creating our API endpoints. Using the app instance, we\u2019re going ot create a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," endpoint with the location at the root, which is indicated by the string in the function. Then here is some interesting syntax, which I will go into in more detail later. Essentially, we\u2019re creating a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," endpoint at the root path and then sending a response to the client saying \u201cHello World\u201d"),(0,i.kt)("p",null,"Finally, this last section is where our server application will actually listen for any connections from clients on the specified port, which we indicated before as ",(0,i.kt)("inlineCode",{parentName:"p"},"8080"),". When our server is up and running, we will console log \u201cServer listening on port ",(0,i.kt)("inlineCode",{parentName:"p"},"[insert port number]")," in this case it\u2019s ",(0,i.kt)("inlineCode",{parentName:"p"},"8080"),". This function will constantly listen for any connections being made."),(0,i.kt)("p",null,"When running the application with ",(0,i.kt)("inlineCode",{parentName:"p"},"npm start"),", the server will be listening on ",(0,i.kt)("inlineCode",{parentName:"p"},"http://localhost:[insert port number here]"),"."),(0,i.kt)("h3",{id:"routing"},"Routing"),(0,i.kt)("p",null,"Routing determines how our server responses to a client request to particular endpoint. An endpoint simply consists of a URI (or path) and a specific HTTP request method (",(0,i.kt)("inlineCode",{parentName:"p"},"GET"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"POST"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"PUT"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"DELETE"),")"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.[METHOD]([PATH], [HANDLER])\n")),(0,i.kt)("h4",{id:"get-endpoint"},"GET Endpoint"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.get('/', (req, res) => {\n res.send('Hello World!');\n});\n")),(0,i.kt)("p",null,"Here we go back to the get request that we saw previously. Essentially here again we have a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," request with the path at the root. We could change this string to anything we want. Then the next parameter is the handler, which is a call back function that is executed when the route is matched. So, when the client makes a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," request to the root path of our server running on port 8080, the server will match that request to this function right here and call the handler. The req and res objects are created automatically by the framework and is passed as an argument to route handler functions."),(0,i.kt)("p",null,"The handler takes in the request object and a response object as parameters and executes the body of this function. The request object represents an HTTP request and contains any data that the client may have sent over to the server (query strings, parameters, body, HTTP headers, etc). This isn\u2019t applicable to ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," request since ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," requests are only used to request data. But, we will look at other method types later. The second parameter is the response object which represents the HTTP response object the server will send back to the client. So, this in example, when the client request is routed to this handler, the server will send an object containing the string ",(0,i.kt)("inlineCode",{parentName:"p"},"Hello World.")),(0,i.kt)("h4",{id:"post-endpoint"},"POST Endpoint"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.post('/', (req, res) => {\n const body = req.body\nres.send(\u2018This is a POST request\u2019)\n})\n")),(0,i.kt)("p",null,"Here we have a ",(0,i.kt)("inlineCode",{parentName:"p"},"POST")," request with the path at the root. We are allowed to have multiple endpoints with the same path they just have to be different HTTP methods. So, we can have a ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," endpoint and a ",(0,i.kt)("inlineCode",{parentName:"p"},"POST")," endpoint at the same path. But, we cannot have two ",(0,i.kt)("inlineCode",{parentName:"p"},"GET")," endpoints with the same path."),(0,i.kt)("h4",{id:"put-endpoint"},"PUT Endpoint"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.put('/user', (req, res) => {\n const body = req.body;\n const username = req.body.username;\n res.send('This is a PUT request');\n});\n")),(0,i.kt)("p",null,"Here we have a ",(0,i.kt)("inlineCode",{parentName:"p"},"PUT")," request with the path at ",(0,i.kt)("inlineCode",{parentName:"p"},"/user"),".\nHere the handler will get the variable called body to the req.body, which represents any data that the client may have sent over to the server at this endpoint. The handler also sets a constant called username to the username parameter sent in through the body of the client\u2019s HTTP request. Then the handler will send a response back saying ",(0,i.kt)("inlineCode",{parentName:"p"},"This is a PUT request.")," A ",(0,i.kt)("inlineCode",{parentName:"p"},"PUT")," request is typically used for updating data, we will take more of a deep dive into all this in the next lecture when we talk about databases."),(0,i.kt)("h4",{id:"delete-endpoint"},"DELETE Endpoint"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"app.delete('/user/:id', (req, res) => {\n res.send('This is a delete request for id ${req.params.id}');\n});\n")),(0,i.kt)("p",null,"Here we have a ",(0,i.kt)("inlineCode",{parentName:"p"},"DELETE")," request with the path at \u201c/user/:id\u201d. This is an interesting path because we have :id. Here we have defined a route that takes in a parameter called id. When we visit something like /user/1, the server will respond with ",(0,i.kt)("inlineCode",{parentName:"p"},"This is a DELETE request for id 1.")," You can include parameters into any endpoint path for your server and read them from the request object sent from the client\u2019s HTTP request. This is an example of a dynamic route."),(0,i.kt)("h2",{id:"postman"},"Postman"),(0,i.kt)("p",null,"In order to test our APIs and make sure that they are responding appropriately for certain routes, Postman is a great tool for sending and receiving API requests directly to and from the server."),(0,i.kt)("p",null,"Postman is an API platform used for building and using APIs."),(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://www.postman.com/"},"Download here")),(0,i.kt)("h2",{id:"sample-code"},"Sample code"),(0,i.kt)("p",null,"This week's sample code starter can be found in the files under ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/cornell-dti/trends-mono-fa24/tree/main/demos/lec6"},"this directory"),"."),(0,i.kt)("p",null,"The solution will be pushed to the same directory after lecture."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8750a2c3.1ba63be7.js b/assets/js/8750a2c3.1ba63be7.js new file mode 100644 index 000000000..475d280e6 --- /dev/null +++ b/assets/js/8750a2c3.1ba63be7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunktrends_in_web_dev_website=self.webpackChunktrends_in_web_dev_website||[]).push([[3943],{3905:function(e,t,a){a.d(t,{Zo:function(){return c},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),d=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(a),m=r,h=u["".concat(s,".").concat(m)]||u[m]||p[m]||i;return a?n.createElement(h,o(o({ref:t},c),{},{components:a})):n.createElement(h,o({ref:t},c))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,o[1]=l;for(var d=2;d {\n console.log(doc.id, ' => ', doc.data());\n});\n")),(0,i.kt)("p",null,"Line by line, we first take a snapshot of all such documents in the query specified, and then, we perform the same ",(0,i.kt)("inlineCode",{parentName:"p"},"doc.data()")," approach. We do not need to check if each doc exists because we are using a for loop, and if a doc does not exist, it simply would not be part of the for loop."),(0,i.kt)("p",null,"We can also order our search results. Here is an example of querying for people who are at least 20 and then ordering them in descending order."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"const snapshot = await peopleCollectionRef\n.where(\u201cage\u201d, \u201c>=\u201d, 20)\n.orderBy(\u201cage\u201d, \u201cdesc\u201d)\n.limit(3).get();\n\nquerySnapshot.forEach((doc) => {\n console.log(doc.id, ' => ', doc.data());\n});\n")),(0,i.kt)("h3",{id:"update"},"Update"),(0,i.kt)("p",null,"Updating a document will only replace the specified fields within a doc and maintain\nunmodified fields. So the following code keep the ",(0,i.kt)("inlineCode",{parentName:"p"},"last")," field but change ",(0,i.kt)("inlineCode",{parentName:"p"},"age")," and\n",(0,i.kt)("inlineCode",{parentName:"p"},"first"),"."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"await peopleCollectionRef\n.doc(\u2018myl39\u2019)\n.update({ age: '20', first: 'michelle' });\n")),(0,i.kt)("p",null,"Note if the document we're trying to access is not available, an error will occur."),(0,i.kt)("h3",{id:"delete"},"Delete"),(0,i.kt)("p",null,"Deleting a document removes it from the collection."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"await peopleCollectionRef\n.doc(\u2018myl39\u2019)\n.delete();\n")),(0,i.kt)("h2",{id:"callbackpromise-based-vs-real-time-queries"},"Callback/Promise-based vs Real-Time Queries"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Promise-Based"),(0,i.kt)("th",{parentName:"tr",align:null},"Real-Time"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"If you need the data now, you can query for it"),(0,i.kt)("td",{parentName:"tr",align:null},"You already have the data")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Data queries can be decentralized (done in any component)"),(0,i.kt)("td",{parentName:"tr",align:null},"Data queries are fetched and memoized through centralized (React) hooks")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"Querying data is imperative, but can quickly become hard to maintain and track (and you lose some of the advantages of a declarative web UI framework)"),(0,i.kt)("td",{parentName:"tr",align:null},"Up-front cost to query data pays off (because you don't ",(0,i.kt)("em",{parentName:"td"},"hopefully")," have to query it again)")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},"There is no cleanup code"),(0,i.kt)("td",{parentName:"tr",align:null},'You first have to "subscribe" to changes in the data, then unsubscribe after you are done (kind of like opening and closing a file stream when reading a file)')))),(0,i.kt)("h3",{id:"what-do-callbackpromise-based-vs-real-time-queries-look-like"},"What do Callback/Promise-based vs. Real-Time Queries Look Like?"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Promise-based queries")," are single queries that return a single async result. So, they are run once and then passed along downstream to children and other descendants of your component. Typically, they are used to react to some update (i.e user clicks a button, a component loads)."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Real-time queries"),' are single queries that return a stream of async results such as weather data. These types of queries are used once the data is listenable and needs to be "subscribed to". These take a stream of results and are built on top of wbe sockets, which are abstractions over a byte stream. So, they\'re good for ... real-time applications.'),(0,i.kt)("h3",{id:"how-do-callbackpromised-based-vs-real-time-queries-work"},"How Do Callback/Promised Based vs. Real-Time Queries Work?"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Promise based queries")," typically calls some backend API route, which fetches and returns data to you. They're built on top of traditional HTTP requests."),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"Real-time queries")," might call a backend route to pass data over to a web socket or it'll simply use an API library to makes calls directly to a database (ex. Firebase Firestore call). These queries are usually wrapped in a library like ",(0,i.kt)("a",{parentName:"p",href:"https://rxjs.dev/"},"RxJS"),"'s observable data type or function calls that allow you to subsribe to changes."),(0,i.kt)("h3",{id:"choosing-a-querying-method"},"Choosing a Querying Method"),(0,i.kt)("p",null,'As described in the first section, the type of queries your application will use will affect the app\'s architecture.\nIn particular, real-time queries play nicely with having a centralized query that runs over a listenable data access object that is "owned" either by'),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"a top-level component (OK in small apps, but prone to prop drilling in more complex apps), or"),(0,i.kt)("li",{parentName:"ol"},"a custom React hook that wraps an effect (triggering an update when the data access object publishes a new version of the data)")),(0,i.kt)("p",null,"That is not to say that your app cannot use both types of queries. It is just that a real-time application requires a specific architecture in which all data is queried first and passed along to components as props or referenced by components via (potentially custom) React/Redux hooks. This does not play nicely with callback/Promise-based queries because the data from the callback/Promise-based queries may be in an inconsistent state by the time the data from a real-time query has updated."),(0,i.kt)("h3",{id:"firebase-firestore-application-callbackpromise-based-or-real-time-queries"},"Firebase Firestore Application: Callback/Promise-based or Real-Time Queries"),(0,i.kt)("p",null,"Firestore offers you a database that nicely organizes your data into ",(0,i.kt)("em",{parentName:"p"},"documents")," and ",(0,i.kt)("em",{parentName:"p"},"collections")," (groups of documents). It allows you to build queries that can either"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"return ",(0,i.kt)("em",{parentName:"li"},"once")," with a single snapshot of data (a Promise-based query), or"),(0,i.kt)("li",{parentName:"ol"},"allow you to hook into the data's live values (a real-time query).")),(0,i.kt)("h4",{id:"firestore-real-time-queries"},"Firestore Real-time Queries"),(0,i.kt)("p",null,"Provides collection + document data as an listenable (subscribable) data object"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"As soon as a collection updates, the collection access object publishes a new version of the collection"),(0,i.kt)("li",{parentName:"ul"},"As soon as a doc updates, the doc access object publishes a new version of the doc\nThis can be passed as a React prop or an effect dependency, which triggers a component update!")),(0,i.kt)("h4",{id:"anatomy-of-a-firebase-firestore-real-time-application-the-full-stack"},'Anatomy of a Firebase Firestore Real-Time Application (The "Full" Stack)'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"Anatomy of a Firebase Firestore Real-Time Update",src:a(7823).Z})),(0,i.kt)("p",null,"Unlike callback/promise-based queries, the connection between updating and fetching data is completely gone. Updating data occurs along an entirely separate channel from subscribing to the data. This means that implementing calls to update data will look very different"),(0,i.kt)("h4",{id:"miscellaneous-advice"},"Miscellaneous Advice"),(0,i.kt)("p",null,"When designing a system:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"avoid two-way dependencies (or as many dependencies as possible)",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"as with React & declarative web frameworks, one-way data binding is the way to go"),(0,i.kt)("li",{parentName:"ul"},"avoids: more things to update"),(0,i.kt)("li",{parentName:"ul"},"avoids: more surface area for synchronization errors")))),(0,i.kt)("p",null,"This philosophy helps us prefer real-time queries over Promise-based queries, because there is only a single dependency for the queried data, rather than the set of all the decentralized Promise-based queries."),(0,i.kt)("h2",{id:"sample-code"},"Sample code"),(0,i.kt)("p",null,"This week's sample code starter can be found in the files under ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/cornell-dti/trends-mono-fa24/tree/main/demos/lec7"},"this directory"),"."),(0,i.kt)("p",null,"The solution will be updated to the same repo after lecture."),(0,i.kt)("h2",{id:"instruction-to-connect-firebase-with-demo-code"},"Instruction to connect Firebase with demo code"),(0,i.kt)("h3",{id:"create-new-firebase-webapp-and-database"},"Create new Firebase webapp and database"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Login to ",(0,i.kt)("a",{parentName:"li",href:"https://console.firebase.google.com/u/2/"},"Firebase Console")," and ",(0,i.kt)("em",{parentName:"li"},"Add project"),":")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Add desired name for the project (ex: ",(0,i.kt)("inlineCode",{parentName:"li"},"trends-demo"),")"),(0,i.kt)("li",{parentName:"ul"},"Turn off Google Analytics for simplicity (can manually integrate later)")),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"Create new Webapp:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"On landing page, click web icon (",(0,i.kt)("inlineCode",{parentName:"li"},""),") OR click ",(0,i.kt)("em",{parentName:"li"},"Add app")," to create new webapp"),(0,i.kt)("li",{parentName:"ul"},"Choose app nickname (ex: ",(0,i.kt)("inlineCode",{parentName:"li"},"lec7-demo"),") then register"),(0,i.kt)("li",{parentName:"ul"},"Use default choice in ",(0,i.kt)("em",{parentName:"li"},"Add Firebase SDK")," then continue to console")),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"Create new Database:")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"On left sidebar, under ",(0,i.kt)("em",{parentName:"li"},"Product categories"),", expand ",(0,i.kt)("em",{parentName:"li"},"Build"),", then choose ",(0,i.kt)("em",{parentName:"li"},"Firestore Database")),(0,i.kt)("li",{parentName:"ul"},"Click ",(0,i.kt)("em",{parentName:"li"},"Create database"),", choose location in ",(0,i.kt)("em",{parentName:"li"},"United States")),(0,i.kt)("li",{parentName:"ul"},"Start in ",(0,i.kt)("strong",{parentName:"li"},"test mode")," (allow anyone to read and write, need to be changed when deployed)"),(0,i.kt)("li",{parentName:"ul"},"Add some data to database for testing (collection -> document -> data fields)")),(0,i.kt)("h3",{id:"connect-your-codebase-to-firebase"},"Connect your codebase to Firebase"),(0,i.kt)("p",null,"This guideline specifically refers to this lecture's demo code"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"On left sidebar, click Setting icon (next to ",(0,i.kt)("em",{parentName:"li"},"Project Overview"),"), then ",(0,i.kt)("em",{parentName:"li"},"Project settings")),(0,i.kt)("li",{parentName:"ol"},"Choose ",(0,i.kt)("em",{parentName:"li"},"Service accounts")," tab, then ",(0,i.kt)("em",{parentName:"li"},"Generate new private key")," (do not expose this key on internet - ex: Git, each of the team members need to generate separate private key themselves)"),(0,i.kt)("li",{parentName:"ol"},"Move the newly downloaded json file to your project backend folder (",(0,i.kt)("inlineCode",{parentName:"li"},"server"),"), then rename it to ",(0,i.kt)("inlineCode",{parentName:"li"},"service_account.json")),(0,i.kt)("li",{parentName:"ol"},"Add ",(0,i.kt)("inlineCode",{parentName:"li"},"service_account.json")," to your ",(0,i.kt)("inlineCode",{parentName:"li"},".gitignore")," (in your root folder)"),(0,i.kt)("li",{parentName:"ol"},"Modify your ",(0,i.kt)("inlineCode",{parentName:"li"},"server/firebase.ts")," to get database as bellow:")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"import { initializeApp, applicationDefault, cert } from 'firebase-admin/app';\nimport { getFirestore } from 'firebase-admin/firestore';\nimport serviceAccount from './service_account.json';\n\nconst app = initializeApp({\n credential: cert(serviceAccount),\n});\nconst db = getFirestore();\n\nexport { db };\n")),(0,i.kt)("ol",{start:6},(0,i.kt)("li",{parentName:"ol"},"Import ",(0,i.kt)("inlineCode",{parentName:"li"},"db")," wherever you need to interact with the database!")),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-typescript"},"import { db } from './firebase';\n")))}u.isMDXComponent=!0},7823:function(e,t,a){t.Z=a.p+"assets/images/firestore-real-time-a90f29184434d35c8cd763ff852134fc.png"}}]); \ No newline at end of file diff --git a/assets/js/97c87d76.ebb72a75.js b/assets/js/97c87d76.c8402b41.js similarity index 62% rename from assets/js/97c87d76.ebb72a75.js rename to assets/js/97c87d76.c8402b41.js index 93264a3b0..10a30eb7a 100644 --- a/assets/js/97c87d76.ebb72a75.js +++ b/assets/js/97c87d76.c8402b41.js @@ -1 +1 @@ -"use strict";(self.webpackChunktrends_in_web_dev_website=self.webpackChunktrends_in_web_dev_website||[]).push([[659],{6790:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"2024fa","label":"2024fa","banner":null,"badge":true,"className":"docs-version-2024fa","isLast":true,"docsSidebars":{"docs":[{"type":"category","collapsed":true,"collapsible":true,"label":"Getting Started","items":[{"type":"link","label":"Syllabus","href":"/docs/introduction"},{"type":"link","label":"Setup your editor","href":"/docs/setup-editor"},{"type":"link","label":"Setup your development environment","href":"/docs/setup-environment"}]},{"type":"category","collapsed":true,"collapsible":true,"label":"Lectures","items":[{"type":"link","label":"Frontend / Unit 1","href":"/docs/unit1"},{"type":"link","label":"Frontend / Unit 2","href":"/docs/unit2"},{"type":"link","label":"Lecture 5","href":"/docs/lecture5"},{"type":"link","label":"Lecture 6","href":"/docs/lecture6"}]},{"type":"category","collapsed":true,"collapsible":true,"label":"Assignments","items":[{"type":"link","label":"Assignments","href":"/docs/assignments"},{"type":"link","label":"Assignment 1","href":"/docs/assignment1"},{"type":"link","label":"Assignment 2","href":"/docs/assignment2"},{"type":"link","label":"Assignment 3","href":"/docs/assignment3"},{"type":"link","label":"Assignment 4","href":"/docs/assignment4"},{"type":"link","label":"Final Project","href":"/docs/finalproject"}]}]}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunktrends_in_web_dev_website=self.webpackChunktrends_in_web_dev_website||[]).push([[659],{6790:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"2024fa","label":"2024fa","banner":null,"badge":true,"className":"docs-version-2024fa","isLast":true,"docsSidebars":{"docs":[{"type":"category","collapsed":true,"collapsible":true,"label":"Getting Started","items":[{"type":"link","label":"Syllabus","href":"/docs/introduction"},{"type":"link","label":"Setup your editor","href":"/docs/setup-editor"},{"type":"link","label":"Setup your development environment","href":"/docs/setup-environment"}]},{"type":"category","collapsed":true,"collapsible":true,"label":"Lectures","items":[{"type":"link","label":"Frontend / Unit 1","href":"/docs/unit1"},{"type":"link","label":"Frontend / Unit 2","href":"/docs/unit2"},{"type":"link","label":"Lecture 5","href":"/docs/lecture5"},{"type":"link","label":"Lecture 6","href":"/docs/lecture6"},{"type":"link","label":"Lecture 7","href":"/docs/lecture7"}]},{"type":"category","collapsed":true,"collapsible":true,"label":"Assignments","items":[{"type":"link","label":"Assignments","href":"/docs/assignments"},{"type":"link","label":"Assignment 1","href":"/docs/assignment1"},{"type":"link","label":"Assignment 2","href":"/docs/assignment2"},{"type":"link","label":"Assignment 3","href":"/docs/assignment3"},{"type":"link","label":"Assignment 4","href":"/docs/assignment4"},{"type":"link","label":"Final Project","href":"/docs/finalproject"}]}]}}')}}]); \ No newline at end of file diff --git a/assets/js/main.18876977.js b/assets/js/main.18876977.js new file mode 100644 index 000000000..1eaaa92e4 --- /dev/null +++ b/assets/js/main.18876977.js @@ -0,0 +1,2 @@ +/*! For license information please see main.18876977.js.LICENSE.txt */ +(self.webpackChunktrends_in_web_dev_website=self.webpackChunktrends_in_web_dev_website||[]).push([[179],{9782:function(e,t,n){"use strict";n.r(t),t.default={title:"Trends in Web Dev",tagline:"Build and deploy modern full-stack web applications using best practices in today's most used tech stacks.",url:"https://webdev.cornelldti.org",baseUrl:"/",favicon:"img/logo.png",organizationName:"cornell-dti",onBrokenLinks:"warn",projectName:"trends-in-web-dev-website",themeConfig:{prism:{theme:{plain:{backgroundColor:"#fafafa"},styles:[{types:["comment"],style:{color:"rgb(160, 161, 167)",fontStyle:"italic"}},{types:["keyword","selector","changed"],style:{color:"rgb(166, 38, 164)"}},{types:["operator","punctuation"],style:{color:"rgb(56, 58, 66)"}},{types:["constant","number","builtin","attr-name","property"],style:{color:"rgb(152, 104, 1)"}},{types:["char","symbol"],style:{color:"rgb(1, 132, 188)"}},{types:["variable","tag","deleted"],style:{color:"rgb(228, 86, 73)"}},{types:["string","inserted"],style:{color:"rgb(80, 161, 79)"}},{types:["function"],style:{color:"rgb(64, 120, 242)"}},{types:["class-name"],style:{color:"rgb(193, 132, 1)"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[]},navbar:{title:"Trends in Web Dev",logo:{alt:"Cornell DTI Web Development Course Logo",src:"img/logo.png"},items:[{type:"docsVersionDropdown",position:"left",dropdownItemsBefore:[],dropdownItemsAfter:[]},{to:"docs/introduction",label:"Getting Started",position:"left"},{to:"docs/unit1",label:"Lectures",position:"left"},{href:"https://github.com/cornell-dti",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Course",items:[{label:"Introduction",to:"docs/introduction"},{label:"Setup Environment",to:"docs/setup-environment"},{label:"Setup Editor",to:"docs/setup-editor"},{label:"First Lecture",to:"docs/unit1"}]},{title:"Cornell DTI",items:[{label:"Website",href:"https://www.cornelldti.org"},{label:"GitHub",href:"https://github.com/cornell-dti"},{label:"Facebook",href:"https://www.facebook.com/cornelldti/"},{label:"Medium",href:"https://medium.com/cornell-design-tech-initiative/"}]},{title:"Cornell DTI Products",items:[{label:"Course Plan",href:"https://courseplan.io/"},{label:"CU Reviews",href:"https://www.cureviews.org/"},{label:"Queue Me In",href:"https://queueme.in/"},{label:"Design @ Cornell",href:"https://www.cudesign.io/"},{label:"Zing",href:"https://zing-lsc-prod.web.app/"}]}],logo:{alt:"Cornell DTI Text Logo",src:"img/dti-text-logo.png"},copyright:"Copyright \xa9 2021 Cornell Design & Tech Initiative. Built with Docusaurus."},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1,switchConfig:{darkIcon:"\ud83c\udf1c",darkIconStyle:{},lightIcon:"\ud83c\udf1e",lightIconStyle:{}}},docs:{versionPersistence:"localStorage"},metadatas:[],hideableSidebar:!1,tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},presets:[["@docusaurus/preset-classic",{docs:{sidebarPath:"/home/runner/work/trends-in-web-dev-website/trends-in-web-dev-website/sidebars.json",includeCurrentVersion:!1},theme:{customCss:"/home/runner/work/trends-in-web-dev-website/trends-in-web-dev-website/src/css/custom.css"}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",locales:["en"],localeConfigs:{}},onBrokenMarkdownLinks:"warn",onDuplicateRoutes:"warn",customFields:{},plugins:[],themes:[],titleDelimiter:"|",noIndex:!1}},640:function(e,t,n){"use strict";var r=n(7294),o=n(3935),a=n(3727),i=n(2203),s=n.n(i),l=function(e){var t=e.error,n=e.retry,o=e.pastDelay;return t?r.createElement("div",{style:{align:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null},c=JSON.parse('{"/blog/archive-f4c":{"component":"9e4087bc","archive":"b2f554cd"},"/docs/2020fa-1a5":{"component":"1be78505","versionMetadata":"1dee71fb"},"/docs/2020fa/assignment1-f15":{"component":"17896441","content":"06509df0"},"/docs/2020fa/assignment2-be4":{"component":"17896441","content":"fa4938a4"},"/docs/2020fa/assignment3-04f":{"component":"17896441","content":"05cc7069"},"/docs/2020fa/assignment4-01e":{"component":"17896441","content":"f96f683d"},"/docs/2020fa/assignment5-d91":{"component":"17896441","content":"ceaa4c24"},"/docs/2020fa/assignments-8ac":{"component":"17896441","content":"ae0b2600"},"/docs/2020fa/finalproject-aaf":{"component":"17896441","content":"98389a97"},"/docs/2020fa/HackOurCampus-df6":{"component":"17896441","content":"8caf5144"},"/docs/2020fa/introduction-7c6":{"component":"17896441","content":"d75a6d43"},"/docs/2020fa/lecture0-b5c":{"component":"17896441","content":"5a121968"},"/docs/2020fa/lecture1-d57":{"component":"17896441","content":"3bf54008"},"/docs/2020fa/lecture10-3ac":{"component":"17896441","content":"d50786d6"},"/docs/2020fa/lecture2-9dd":{"component":"17896441","content":"c2b05852"},"/docs/2020fa/lecture3-613":{"component":"17896441","content":"0682386b"},"/docs/2020fa/lecture4-6bb":{"component":"17896441","content":"549b9273"},"/docs/2020fa/lecture5-25f":{"component":"17896441","content":"59676426"},"/docs/2020fa/lecture6-677":{"component":"17896441","content":"5eb252c6"},"/docs/2020fa/lecture7-e44":{"component":"17896441","content":"34340b99"},"/docs/2020fa/lecture8-0ba":{"component":"17896441","content":"06d7c6a6"},"/docs/2020fa/lecture9-fb0":{"component":"17896441","content":"eb2864df"},"/docs/2020fa/setup-editor-163":{"component":"17896441","content":"254b729f"},"/docs/2020fa/setup-environment-adc":{"component":"17896441","content":"63a834f3"},"/docs/2020sp-11b":{"component":"1be78505","versionMetadata":"c237f4aa"},"/docs/2020sp/lecture1-7e1":{"component":"17896441","content":"34c5a6f4"},"/docs/2020sp/lecture10-a64":{"component":"17896441","content":"e3292145"},"/docs/2020sp/lecture2-b12":{"component":"17896441","content":"2d3a4042"},"/docs/2020sp/lecture3-8aa":{"component":"17896441","content":"9510f52e"},"/docs/2020sp/lecture4-d41":{"component":"17896441","content":"b234e68d"},"/docs/2020sp/lecture5-5fe":{"component":"17896441","content":"6f70a0e0"},"/docs/2020sp/lecture6-015":{"component":"17896441","content":"8c3bc699"},"/docs/2020sp/lecture7-9c7":{"component":"17896441","content":"4b587976"},"/docs/2020sp/lecture8-539":{"component":"17896441","content":"9f56bb44"},"/docs/2020sp/lecture9-371":{"component":"17896441","content":"e2da632e"},"/docs/2021fa-4fc":{"component":"1be78505","versionMetadata":"d88cf764"},"/docs/2021fa/assignment1-adf":{"component":"17896441","content":"6749d6f8"},"/docs/2021fa/assignment2-0b2":{"component":"17896441","content":"7154c974"},"/docs/2021fa/assignment3-22a":{"component":"17896441","content":"285fefd4"},"/docs/2021fa/assignment4-b4d":{"component":"17896441","content":"afef7079"},"/docs/2021fa/assignment5-5f3":{"component":"17896441","content":"b03dc5af"},"/docs/2021fa/assignments-9ec":{"component":"17896441","content":"e659d385"},"/docs/2021fa/finalproject-a2a":{"component":"17896441","content":"d53926b7"},"/docs/2021fa/introduction-067":{"component":"17896441","content":"c69b0f77"},"/docs/2021fa/lecture1-401":{"component":"17896441","content":"676a7c04"},"/docs/2021fa/lecture10-688":{"component":"17896441","content":"05e07559"},"/docs/2021fa/lecture2-6fc":{"component":"17896441","content":"f94d816f"},"/docs/2021fa/lecture3-619":{"component":"17896441","content":"7e722b0b"},"/docs/2021fa/lecture4-4d8":{"component":"17896441","content":"67a7304f"},"/docs/2021fa/lecture5-634":{"component":"17896441","content":"ffa6c9f2"},"/docs/2021fa/lecture6-168":{"component":"17896441","content":"2895e284"},"/docs/2021fa/lecture7-4f6":{"component":"17896441","content":"ad56e53d"},"/docs/2021fa/lecture8-53f":{"component":"17896441","content":"c50c920e"},"/docs/2021fa/lecture9-c5f":{"component":"17896441","content":"42faf210"},"/docs/2021fa/setup-editor-31f":{"component":"17896441","content":"88f6781a"},"/docs/2021fa/setup-environment-eaf":{"component":"17896441","content":"f72aea3c"},"/docs/2021sp-a97":{"component":"1be78505","versionMetadata":"cd5829fe"},"/docs/2021sp/assignment1-c21":{"component":"17896441","content":"ad820646"},"/docs/2021sp/assignment2-d91":{"component":"17896441","content":"9e74f5e4"},"/docs/2021sp/assignment3-331":{"component":"17896441","content":"6a1de0a6"},"/docs/2021sp/assignment4-a93":{"component":"17896441","content":"38c5d5d8"},"/docs/2021sp/assignment5-865":{"component":"17896441","content":"b391e7a8"},"/docs/2021sp/assignments-74d":{"component":"17896441","content":"25289d1f"},"/docs/2021sp/finalproject-dc8":{"component":"17896441","content":"6490f083"},"/docs/2021sp/introduction-6ca":{"component":"17896441","content":"58bb1d0f"},"/docs/2021sp/lecture1-7fb":{"component":"17896441","content":"400a63e5"},"/docs/2021sp/lecture10-081":{"component":"17896441","content":"4f0692d8"},"/docs/2021sp/lecture2-cb2":{"component":"17896441","content":"97b2708e"},"/docs/2021sp/lecture3-570":{"component":"17896441","content":"cf8cc687"},"/docs/2021sp/lecture4-9f4":{"component":"17896441","content":"3763debd"},"/docs/2021sp/lecture5-62f":{"component":"17896441","content":"06450c56"},"/docs/2021sp/lecture6-681":{"component":"17896441","content":"21369d76"},"/docs/2021sp/lecture7-3b9":{"component":"17896441","content":"44007af7"},"/docs/2021sp/lecture8-21d":{"component":"17896441","content":"d8dbc24c"},"/docs/2021sp/lecture9-bb3":{"component":"17896441","content":"b7992291"},"/docs/2021sp/setup-editor-7bc":{"component":"17896441","content":"a5e0de92"},"/docs/2021sp/setup-environment-dff":{"component":"17896441","content":"c1bc302a"},"/docs/2022fa-5dc":{"component":"1be78505","versionMetadata":"a916eec8"},"/docs/2022fa/assignment1-cdf":{"component":"17896441","content":"765754c9"},"/docs/2022fa/assignment2-a29":{"component":"17896441","content":"ce43e1ab"},"/docs/2022fa/assignment3-f3c":{"component":"17896441","content":"19667349"},"/docs/2022fa/assignment4-4f1":{"component":"17896441","content":"97ad368c"},"/docs/2022fa/assignments-e95":{"component":"17896441","content":"22af830d"},"/docs/2022fa/finalproject-6e9":{"component":"17896441","content":"c268139f"},"/docs/2022fa/introduction-bf4":{"component":"17896441","content":"41411fc6"},"/docs/2022fa/lecture1-8ac":{"component":"17896441","content":"520e741b"},"/docs/2022fa/lecture2-2ec":{"component":"17896441","content":"962797aa"},"/docs/2022fa/lecture3-36e":{"component":"17896441","content":"168821de"},"/docs/2022fa/lecture4-e65":{"component":"17896441","content":"4e1c8eee"},"/docs/2022fa/lecture5-2ab":{"component":"17896441","content":"b84c401c"},"/docs/2022fa/lecture6-55a":{"component":"17896441","content":"af2e0600"},"/docs/2022fa/lecture7-7cd":{"component":"17896441","content":"7db104a6"},"/docs/2022fa/lecture8-baf":{"component":"17896441","content":"0217f38f"},"/docs/2022fa/lecture9-f73":{"component":"17896441","content":"9bdd131d"},"/docs/2022fa/setup-editor-3af":{"component":"17896441","content":"fafed6e2"},"/docs/2022fa/setup-environment-a41":{"component":"17896441","content":"1157a7ce"},"/docs/2022sp-e1f":{"component":"1be78505","versionMetadata":"67fcd22c"},"/docs/2022sp/assignment1-146":{"component":"17896441","content":"bccda9ab"},"/docs/2022sp/assignment2-254":{"component":"17896441","content":"3ac44098"},"/docs/2022sp/assignment3-f2c":{"component":"17896441","content":"bb5b1104"},"/docs/2022sp/assignment4-310":{"component":"17896441","content":"7ab326c8"},"/docs/2022sp/assignments-d3f":{"component":"17896441","content":"4f4cba50"},"/docs/2022sp/finalproject-991":{"component":"17896441","content":"0ff9b5aa"},"/docs/2022sp/introduction-1ac":{"component":"17896441","content":"897da7a1"},"/docs/2022sp/lecture1-140":{"component":"17896441","content":"4b699842"},"/docs/2022sp/lecture10-73e":{"component":"17896441","content":"7db33633"},"/docs/2022sp/lecture2-b25":{"component":"17896441","content":"de5b8704"},"/docs/2022sp/lecture3-d07":{"component":"17896441","content":"1f0a6afa"},"/docs/2022sp/lecture4-95c":{"component":"17896441","content":"2efd7a92"},"/docs/2022sp/lecture5-05b":{"component":"17896441","content":"ca5dcf79"},"/docs/2022sp/lecture6-2c9":{"component":"17896441","content":"597354b5"},"/docs/2022sp/lecture7-d21":{"component":"17896441","content":"381009a3"},"/docs/2022sp/lecture8-60d":{"component":"17896441","content":"427f9d2c"},"/docs/2022sp/lecture9-a9d":{"component":"17896441","content":"42c7ba3f"},"/docs/2022sp/setup-editor-7ea":{"component":"17896441","content":"eb57aecd"},"/docs/2022sp/setup-environment-23d":{"component":"17896441","content":"6595de78"},"/docs/2023fa-71f":{"component":"1be78505","versionMetadata":"e61e02b7"},"/docs/2023fa/assignment1-8e2":{"component":"17896441","content":"3cf3f69d"},"/docs/2023fa/assignment2-ace":{"component":"17896441","content":"f36f9871"},"/docs/2023fa/assignment3-9fe":{"component":"17896441","content":"f586e6d6"},"/docs/2023fa/assignment4-f44":{"component":"17896441","content":"326e4659"},"/docs/2023fa/assignments-22e":{"component":"17896441","content":"a4717cd4"},"/docs/2023fa/finalproject-d96":{"component":"17896441","content":"219c64ca"},"/docs/2023fa/introduction-974":{"component":"17896441","content":"d8bcf37c"},"/docs/2023fa/lecture5-cda":{"component":"17896441","content":"00778435"},"/docs/2023fa/lecture6-221":{"component":"17896441","content":"a8a7ed98"},"/docs/2023fa/lecture7-61c":{"component":"17896441","content":"614cf394"},"/docs/2023fa/lecture8-745":{"component":"17896441","content":"a38a8c5b"},"/docs/2023fa/lecture9-4f2":{"component":"17896441","content":"5c65e767"},"/docs/2023fa/setup-editor-eba":{"component":"17896441","content":"c5e87426"},"/docs/2023fa/setup-environment-dc5":{"component":"17896441","content":"7a4c4d02"},"/docs/2023fa/unit1-b09":{"component":"17896441","content":"c6c85278"},"/docs/2023fa/unit2-75a":{"component":"17896441","content":"456160f4"},"/docs/2023sp-523":{"component":"1be78505","versionMetadata":"891ae17b"},"/docs/2023sp/assignment1-daa":{"component":"17896441","content":"145263d1"},"/docs/2023sp/assignment2-3df":{"component":"17896441","content":"15498faf"},"/docs/2023sp/assignment3-ffa":{"component":"17896441","content":"dd823266"},"/docs/2023sp/assignment4-fa0":{"component":"17896441","content":"0e4b1fab"},"/docs/2023sp/assignments-b84":{"component":"17896441","content":"5b6eab1f"},"/docs/2023sp/finalproject-e44":{"component":"17896441","content":"e6cfed0b"},"/docs/2023sp/introduction-6c2":{"component":"17896441","content":"cd83c525"},"/docs/2023sp/lecture1-9be":{"component":"17896441","content":"d7dd9adb"},"/docs/2023sp/lecture10-556":{"component":"17896441","content":"9d61e91f"},"/docs/2023sp/lecture2-479":{"component":"17896441","content":"7bd006db"},"/docs/2023sp/lecture3-602":{"component":"17896441","content":"d37109ed"},"/docs/2023sp/lecture4-a8f":{"component":"17896441","content":"7a5c4182"},"/docs/2023sp/lecture5-cd6":{"component":"17896441","content":"8fb4e078"},"/docs/2023sp/lecture6-fd1":{"component":"17896441","content":"632d44fb"},"/docs/2023sp/lecture7-91a":{"component":"17896441","content":"5669fd4b"},"/docs/2023sp/lecture8-dbb":{"component":"17896441","content":"1b59971a"},"/docs/2023sp/lecture9-2aa":{"component":"17896441","content":"73891349"},"/docs/2023sp/setup-editor-7ef":{"component":"17896441","content":"1170099e"},"/docs/2023sp/setup-environment-ec0":{"component":"17896441","content":"dd1ba448"},"/docs/2024sp-e29":{"component":"1be78505","versionMetadata":"da118e27"},"/docs/2024sp/assignment1-445":{"component":"17896441","content":"a8144ba4"},"/docs/2024sp/assignment2-b0f":{"component":"17896441","content":"1beda944"},"/docs/2024sp/assignment3-654":{"component":"17896441","content":"25010c81"},"/docs/2024sp/assignment4-590":{"component":"17896441","content":"e1c92344"},"/docs/2024sp/assignments-db3":{"component":"17896441","content":"9bd82af6"},"/docs/2024sp/finalproject-fe1":{"component":"17896441","content":"4d09f4bc"},"/docs/2024sp/introduction-8fa":{"component":"17896441","content":"e93d9e53"},"/docs/2024sp/lecture5-753":{"component":"17896441","content":"a05c6a31"},"/docs/2024sp/lecture6-954":{"component":"17896441","content":"5d0496e2"},"/docs/2024sp/lecture7-8d4":{"component":"17896441","content":"b7d293ee"},"/docs/2024sp/lecture8-f43":{"component":"17896441","content":"b73a7772"},"/docs/2024sp/lecture9-bc5":{"component":"17896441","content":"703a5f80"},"/docs/2024sp/setup-editor-893":{"component":"17896441","content":"9d708b7f"},"/docs/2024sp/setup-environment-fe3":{"component":"17896441","content":"d93177cc"},"/docs/2024sp/unit1-a1f":{"component":"17896441","content":"e680130f"},"/docs/2024sp/unit2-f22":{"component":"17896441","content":"07779d85"},"/docs-b38":{"component":"1be78505","versionMetadata":"97c87d76"},"/docs/assignment1-4e3":{"component":"17896441","content":"cb073a31"},"/docs/assignment2-f36":{"component":"17896441","content":"c0179e12"},"/docs/assignment3-496":{"component":"17896441","content":"d48e768d"},"/docs/assignment4-db9":{"component":"17896441","content":"bf3acc8f"},"/docs/assignments-e26":{"component":"17896441","content":"621d764c"},"/docs/finalproject-a0b":{"component":"17896441","content":"d4a0a680"},"/docs/introduction-786":{"component":"17896441","content":"12daa0f4"},"/docs/lecture5-fd3":{"component":"17896441","content":"33ef1dde"},"/docs/lecture6-c1e":{"component":"17896441","content":"7d34dd09"},"/docs/lecture7-785":{"component":"17896441","content":"8750a2c3"},"/docs/setup-editor-fa6":{"component":"17896441","content":"796a19f7"},"/docs/setup-environment-3f7":{"component":"17896441","content":"dfd22331"},"/docs/unit1-e09":{"component":"17896441","content":"23699475"},"/docs/unit2-4ed":{"component":"17896441","content":"64cf1f87"},"/-f49":{"component":"1df93b7f","config":"5e9f5e1a"}}'),u={"00778435":[function(){return n.e(634).then(n.bind(n,910))},"@site/versioned_docs/version-2023fa/lecture5.md",910],"0217f38f":[function(){return n.e(4735).then(n.bind(n,9050))},"@site/versioned_docs/version-2022fa/lecture8.md",9050],"05cc7069":[function(){return n.e(578).then(n.bind(n,906))},"@site/versioned_docs/version-2020fa/assignment3.md",906],"05e07559":[function(){return n.e(3981).then(n.bind(n,3138))},"@site/versioned_docs/version-2021fa/lecture10.md",3138],"06450c56":[function(){return n.e(9511).then(n.bind(n,6985))},"@site/versioned_docs/version-2021sp/lecture5.md",6985],"06509df0":[function(){return n.e(3510).then(n.bind(n,4923))},"@site/versioned_docs/version-2020fa/assignment1.md",4923],"0682386b":[function(){return n.e(9027).then(n.bind(n,4035))},"@site/versioned_docs/version-2020fa/lecture3.md",4035],"06d7c6a6":[function(){return n.e(3626).then(n.bind(n,8880))},"@site/versioned_docs/version-2020fa/lecture8.md",8880],"07779d85":[function(){return n.e(6370).then(n.bind(n,2337))},"@site/versioned_docs/version-2024sp/unit2.md",2337],"0e4b1fab":[function(){return n.e(2176).then(n.bind(n,5830))},"@site/versioned_docs/version-2023sp/assignment4.md",5830],"0ff9b5aa":[function(){return n.e(9492).then(n.bind(n,5856))},"@site/versioned_docs/version-2022sp/finalproject.md",5856],"1157a7ce":[function(){return n.e(3365).then(n.bind(n,4737))},"@site/versioned_docs/version-2022fa/setup-environment.md",4737],"1170099e":[function(){return n.e(7476).then(n.bind(n,2474))},"@site/versioned_docs/version-2023sp/setup-editor.md",2474],"12daa0f4":[function(){return n.e(1547).then(n.bind(n,1891))},"@site/versioned_docs/version-2024fa/introduction.md",1891],"145263d1":[function(){return n.e(4038).then(n.bind(n,937))},"@site/versioned_docs/version-2023sp/assignment1.md",937],"15498faf":[function(){return n.e(6536).then(n.bind(n,4200))},"@site/versioned_docs/version-2023sp/assignment2.md",4200],"168821de":[function(){return n.e(4645).then(n.bind(n,9497))},"@site/versioned_docs/version-2022fa/lecture3.md",9497],17896441:[function(){return Promise.all([n.e(532),n.e(9558),n.e(7918)]).then(n.bind(n,5172))},"@theme/DocItem",5172],19667349:[function(){return n.e(2152).then(n.bind(n,7681))},"@site/versioned_docs/version-2022fa/assignment3.md",7681],"1b59971a":[function(){return n.e(2212).then(n.bind(n,2838))},"@site/versioned_docs/version-2023sp/lecture8.md",2838],"1be78505":[function(){return Promise.all([n.e(532),n.e(9558),n.e(5186),n.e(9514)]).then(n.bind(n,5750))},"@theme/DocPage",5750],"1beda944":[function(){return n.e(9275).then(n.bind(n,4145))},"@site/versioned_docs/version-2024sp/assignment2.md",4145],"1dee71fb":[function(){return n.e(2432).then(n.t.bind(n,6712,19))},"~docs/default/version-2020-fa-metadata-prop-ad6.json",6712],"1df93b7f":[function(){return Promise.all([n.e(532),n.e(9558),n.e(5186),n.e(3237)]).then(n.bind(n,5e3))},"@site/src/pages/index.tsx",5e3],"1f0a6afa":[function(){return n.e(4614).then(n.bind(n,7932))},"@site/versioned_docs/version-2022sp/lecture3.md",7932],"21369d76":[function(){return n.e(4095).then(n.bind(n,1043))},"@site/versioned_docs/version-2021sp/lecture6.md",1043],"219c64ca":[function(){return n.e(8842).then(n.bind(n,7359))},"@site/versioned_docs/version-2023fa/finalproject.md",7359],"22af830d":[function(){return n.e(4275).then(n.bind(n,4158))},"@site/versioned_docs/version-2022fa/assignments.md",4158],23699475:[function(){return n.e(7778).then(n.bind(n,5430))},"@site/versioned_docs/version-2024fa/unit1.md",5430],"25010c81":[function(){return n.e(4858).then(n.bind(n,1764))},"@site/versioned_docs/version-2024sp/assignment3.md",1764],"25289d1f":[function(){return n.e(2140).then(n.bind(n,2941))},"@site/versioned_docs/version-2021sp/assignments.md",2941],"254b729f":[function(){return n.e(5405).then(n.bind(n,6444))},"@site/versioned_docs/version-2020fa/setup-editor.md",6444],"285fefd4":[function(){return n.e(8022).then(n.bind(n,404))},"@site/versioned_docs/version-2021fa/assignment3.md",404],"2895e284":[function(){return n.e(2020).then(n.bind(n,3419))},"@site/versioned_docs/version-2021fa/lecture6.md",3419],"2d3a4042":[function(){return n.e(2938).then(n.bind(n,304))},"@site/versioned_docs/version-2020sp/lecture2.md",304],"2efd7a92":[function(){return n.e(5701).then(n.bind(n,5655))},"@site/versioned_docs/version-2022sp/lecture4.md",5655],"326e4659":[function(){return n.e(9909).then(n.bind(n,3108))},"@site/versioned_docs/version-2023fa/assignment4.md",3108],"33ef1dde":[function(){return n.e(1946).then(n.bind(n,7753))},"@site/versioned_docs/version-2024fa/lecture5.md",7753],"34340b99":[function(){return n.e(5609).then(n.bind(n,4853))},"@site/versioned_docs/version-2020fa/lecture7.md",4853],"34c5a6f4":[function(){return n.e(3778).then(n.bind(n,3609))},"@site/versioned_docs/version-2020sp/lecture1.md",3609],"3763debd":[function(){return n.e(4460).then(n.bind(n,8707))},"@site/versioned_docs/version-2021sp/lecture4.md",8707],"381009a3":[function(){return n.e(2240).then(n.bind(n,2496))},"@site/versioned_docs/version-2022sp/lecture7.md",2496],"38c5d5d8":[function(){return n.e(9099).then(n.bind(n,5662))},"@site/versioned_docs/version-2021sp/assignment4.md",5662],"3ac44098":[function(){return n.e(7997).then(n.bind(n,9809))},"@site/versioned_docs/version-2022sp/assignment2.md",9809],"3bf54008":[function(){return n.e(4289).then(n.bind(n,6470))},"@site/versioned_docs/version-2020fa/lecture1.md",6470],"3cf3f69d":[function(){return n.e(1312).then(n.bind(n,5806))},"@site/versioned_docs/version-2023fa/assignment1.md",5806],"400a63e5":[function(){return n.e(4182).then(n.bind(n,3084))},"@site/versioned_docs/version-2021sp/lecture1.md",3084],"41411fc6":[function(){return n.e(5017).then(n.bind(n,9754))},"@site/versioned_docs/version-2022fa/introduction.md",9754],"427f9d2c":[function(){return n.e(3624).then(n.bind(n,3825))},"@site/versioned_docs/version-2022sp/lecture8.md",3825],"42c7ba3f":[function(){return n.e(2012).then(n.bind(n,5710))},"@site/versioned_docs/version-2022sp/lecture9.md",5710],"42faf210":[function(){return n.e(428).then(n.bind(n,9615))},"@site/versioned_docs/version-2021fa/lecture9.md",9615],"44007af7":[function(){return n.e(6582).then(n.bind(n,2300))},"@site/versioned_docs/version-2021sp/lecture7.md",2300],"456160f4":[function(){return n.e(5272).then(n.bind(n,976))},"@site/versioned_docs/version-2023fa/unit2.md",976],"4b587976":[function(){return n.e(6763).then(n.bind(n,5087))},"@site/versioned_docs/version-2020sp/lecture7.md",5087],"4b699842":[function(){return n.e(6173).then(n.bind(n,6084))},"@site/versioned_docs/version-2022sp/lecture1.md",6084],"4d09f4bc":[function(){return n.e(9068).then(n.bind(n,8723))},"@site/versioned_docs/version-2024sp/finalproject.md",8723],"4e1c8eee":[function(){return n.e(7322).then(n.bind(n,3871))},"@site/versioned_docs/version-2022fa/lecture4.md",3871],"4f0692d8":[function(){return n.e(5568).then(n.bind(n,7851))},"@site/versioned_docs/version-2021sp/lecture10.md",7851],"4f4cba50":[function(){return n.e(6704).then(n.bind(n,8126))},"@site/versioned_docs/version-2022sp/assignments.md",8126],"520e741b":[function(){return n.e(4480).then(n.bind(n,8317))},"@site/versioned_docs/version-2022fa/lecture1.md",8317],"549b9273":[function(){return n.e(9164).then(n.bind(n,8777))},"@site/versioned_docs/version-2020fa/lecture4.md",8777],"5669fd4b":[function(){return n.e(7279).then(n.bind(n,2392))},"@site/versioned_docs/version-2023sp/lecture7.md",2392],"58bb1d0f":[function(){return n.e(7062).then(n.bind(n,482))},"@site/versioned_docs/version-2021sp/introduction.md",482],59676426:[function(){return Promise.all([n.e(532),n.e(9558),n.e(6876)]).then(n.bind(n,2396))},"@site/versioned_docs/version-2020fa/lecture5.md",2396],"597354b5":[function(){return n.e(6623).then(n.bind(n,9776))},"@site/versioned_docs/version-2022sp/lecture6.md",9776],"5a121968":[function(){return n.e(4090).then(n.bind(n,7777))},"@site/versioned_docs/version-2020fa/lecture0.md",7777],"5b6eab1f":[function(){return n.e(1977).then(n.bind(n,6314))},"@site/versioned_docs/version-2023sp/assignments.md",6314],"5c65e767":[function(){return n.e(804).then(n.bind(n,9780))},"@site/versioned_docs/version-2023fa/lecture9.md",9780],"5d0496e2":[function(){return n.e(8798).then(n.bind(n,6895))},"@site/versioned_docs/version-2024sp/lecture6.md",6895],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,9782))},"@generated/docusaurus.config",9782],"5eb252c6":[function(){return Promise.all([n.e(532),n.e(9558),n.e(4057)]).then(n.bind(n,2418))},"@site/versioned_docs/version-2020fa/lecture6.md",2418],"614cf394":[function(){return n.e(6579).then(n.bind(n,94))},"@site/versioned_docs/version-2023fa/lecture7.md",94],"621d764c":[function(){return n.e(9218).then(n.bind(n,244))},"@site/versioned_docs/version-2024fa/assignments.md",244],"632d44fb":[function(){return n.e(5154).then(n.bind(n,9239))},"@site/versioned_docs/version-2023sp/lecture6.md",9239],"63a834f3":[function(){return n.e(7708).then(n.bind(n,9071))},"@site/versioned_docs/version-2020fa/setup-environment.md",9071],"6490f083":[function(){return n.e(5028).then(n.bind(n,6463))},"@site/versioned_docs/version-2021sp/finalproject.md",6463],"64cf1f87":[function(){return n.e(3610).then(n.bind(n,6156))},"@site/versioned_docs/version-2024fa/unit2.md",6156],"6595de78":[function(){return n.e(5846).then(n.bind(n,7436))},"@site/versioned_docs/version-2022sp/setup-environment.md",7436],"6749d6f8":[function(){return n.e(7002).then(n.bind(n,4034))},"@site/versioned_docs/version-2021fa/assignment1.md",4034],"676a7c04":[function(){return n.e(7990).then(n.bind(n,2904))},"@site/versioned_docs/version-2021fa/lecture1.md",2904],"67a7304f":[function(){return n.e(2826).then(n.bind(n,8147))},"@site/versioned_docs/version-2021fa/lecture4.md",8147],"67fcd22c":[function(){return n.e(8994).then(n.t.bind(n,7232,19))},"~docs/default/version-2022-sp-metadata-prop-b2d.json",7232],"6a1de0a6":[function(){return n.e(5496).then(n.bind(n,6001))},"@site/versioned_docs/version-2021sp/assignment3.md",6001],"6f70a0e0":[function(){return Promise.all([n.e(532),n.e(9558),n.e(7783)]).then(n.bind(n,2116))},"@site/versioned_docs/version-2020sp/lecture5.md",2116],"703a5f80":[function(){return n.e(8402).then(n.bind(n,4525))},"@site/versioned_docs/version-2024sp/lecture9.md",4525],"7154c974":[function(){return n.e(5298).then(n.bind(n,8718))},"@site/versioned_docs/version-2021fa/assignment2.md",8718],73891349:[function(){return n.e(1801).then(n.bind(n,5550))},"@site/versioned_docs/version-2023sp/lecture9.md",5550],"765754c9":[function(){return n.e(7576).then(n.bind(n,9077))},"@site/versioned_docs/version-2022fa/assignment1.md",9077],"796a19f7":[function(){return n.e(1152).then(n.bind(n,5211))},"@site/versioned_docs/version-2024fa/setup-editor.md",5211],"7a4c4d02":[function(){return n.e(2047).then(n.bind(n,9362))},"@site/versioned_docs/version-2023fa/setup-environment.md",9362],"7a5c4182":[function(){return n.e(7894).then(n.bind(n,9551))},"@site/versioned_docs/version-2023sp/lecture4.md",9551],"7ab326c8":[function(){return n.e(7175).then(n.bind(n,9518))},"@site/versioned_docs/version-2022sp/assignment4.md",9518],"7bd006db":[function(){return n.e(2632).then(n.bind(n,6133))},"@site/versioned_docs/version-2023sp/lecture2.md",6133],"7d34dd09":[function(){return n.e(3188).then(n.bind(n,2898))},"@site/versioned_docs/version-2024fa/lecture6.md",2898],"7db104a6":[function(){return n.e(4315).then(n.bind(n,7158))},"@site/versioned_docs/version-2022fa/lecture7.md",7158],"7db33633":[function(){return n.e(2601).then(n.bind(n,1798))},"@site/versioned_docs/version-2022sp/lecture10.md",1798],"7e722b0b":[function(){return n.e(3112).then(n.bind(n,7387))},"@site/versioned_docs/version-2021fa/lecture3.md",7387],"8750a2c3":[function(){return n.e(3943).then(n.bind(n,2186))},"@site/versioned_docs/version-2024fa/lecture7.md",2186],"88f6781a":[function(){return n.e(2245).then(n.bind(n,9843))},"@site/versioned_docs/version-2021fa/setup-editor.md",9843],"891ae17b":[function(){return n.e(1810).then(n.t.bind(n,9923,19))},"~docs/default/version-2023-sp-metadata-prop-ec3.json",9923],"897da7a1":[function(){return n.e(5114).then(n.bind(n,2334))},"@site/versioned_docs/version-2022sp/introduction.md",2334],"8c3bc699":[function(){return Promise.all([n.e(532),n.e(9558),n.e(8159)]).then(n.bind(n,8461))},"@site/versioned_docs/version-2020sp/lecture6.md",8461],"8caf5144":[function(){return n.e(358).then(n.bind(n,7810))},"@site/versioned_docs/version-2020fa/HackOurCampus.md",7810],"8fb4e078":[function(){return n.e(824).then(n.bind(n,4022))},"@site/versioned_docs/version-2023sp/lecture5.md",4022],"9510f52e":[function(){return Promise.all([n.e(532),n.e(9558),n.e(8380)]).then(n.bind(n,4768))},"@site/versioned_docs/version-2020sp/lecture3.md",4768],"962797aa":[function(){return n.e(7863).then(n.bind(n,7401))},"@site/versioned_docs/version-2022fa/lecture2.md",7401],"97ad368c":[function(){return n.e(2484).then(n.bind(n,3130))},"@site/versioned_docs/version-2022fa/assignment4.md",3130],"97b2708e":[function(){return n.e(8659).then(n.bind(n,3776))},"@site/versioned_docs/version-2021sp/lecture2.md",3776],"97c87d76":[function(){return n.e(659).then(n.t.bind(n,6790,19))},"~docs/default/version-2024-fa-metadata-prop-856.json",6790],"98389a97":[function(){return n.e(9333).then(n.bind(n,2129))},"@site/versioned_docs/version-2020fa/finalproject.md",2129],"9bd82af6":[function(){return n.e(4135).then(n.bind(n,1731))},"@site/versioned_docs/version-2024sp/assignments.md",1731],"9bdd131d":[function(){return n.e(9342).then(n.bind(n,4892))},"@site/versioned_docs/version-2022fa/lecture9.md",4892],"9d61e91f":[function(){return n.e(9242).then(n.bind(n,2724))},"@site/versioned_docs/version-2023sp/lecture10.md",2724],"9d708b7f":[function(){return n.e(9861).then(n.bind(n,4998))},"@site/versioned_docs/version-2024sp/setup-editor.md",4998],"9e4087bc":[function(){return Promise.all([n.e(532),n.e(9558),n.e(5186),n.e(3608)]).then(n.bind(n,3012))},"@theme/BlogArchivePage",3012],"9e74f5e4":[function(){return n.e(9406).then(n.bind(n,3388))},"@site/versioned_docs/version-2021sp/assignment2.md",3388],"9f56bb44":[function(){return n.e(7084).then(n.bind(n,1828))},"@site/versioned_docs/version-2020sp/lecture8.md",1828],a05c6a31:[function(){return n.e(9966).then(n.bind(n,5397))},"@site/versioned_docs/version-2024sp/lecture5.md",5397],a38a8c5b:[function(){return n.e(2691).then(n.bind(n,1791))},"@site/versioned_docs/version-2023fa/lecture8.md",1791],a4717cd4:[function(){return n.e(6270).then(n.bind(n,1033))},"@site/versioned_docs/version-2023fa/assignments.md",1033],a5e0de92:[function(){return n.e(5237).then(n.bind(n,9879))},"@site/versioned_docs/version-2021sp/setup-editor.md",9879],a8144ba4:[function(){return n.e(9862).then(n.bind(n,1062))},"@site/versioned_docs/version-2024sp/assignment1.md",1062],a8a7ed98:[function(){return n.e(996).then(n.bind(n,9127))},"@site/versioned_docs/version-2023fa/lecture6.md",9127],a916eec8:[function(){return n.e(8039).then(n.t.bind(n,9723,19))},"~docs/default/version-2022-fa-metadata-prop-708.json",9723],ad56e53d:[function(){return n.e(4444).then(n.bind(n,5544))},"@site/versioned_docs/version-2021fa/lecture7.md",5544],ad820646:[function(){return n.e(1265).then(n.bind(n,8051))},"@site/versioned_docs/version-2021sp/assignment1.md",8051],ae0b2600:[function(){return n.e(2410).then(n.bind(n,1634))},"@site/versioned_docs/version-2020fa/assignments.md",1634],af2e0600:[function(){return n.e(9731).then(n.bind(n,5614))},"@site/versioned_docs/version-2022fa/lecture6.md",5614],afef7079:[function(){return n.e(9826).then(n.bind(n,2579))},"@site/versioned_docs/version-2021fa/assignment4.md",2579],b03dc5af:[function(){return n.e(2987).then(n.bind(n,6268))},"@site/versioned_docs/version-2021fa/assignment5.md",6268],b234e68d:[function(){return n.e(8163).then(n.bind(n,6783))},"@site/versioned_docs/version-2020sp/lecture4.md",6783],b2f554cd:[function(){return n.e(1477).then(n.t.bind(n,10,19))},"~blog/default/blog-archive-80c.json",10],b391e7a8:[function(){return n.e(9912).then(n.bind(n,5285))},"@site/versioned_docs/version-2021sp/assignment5.md",5285],b73a7772:[function(){return n.e(6808).then(n.bind(n,8921))},"@site/versioned_docs/version-2024sp/lecture8.md",8921],b7992291:[function(){return n.e(1890).then(n.bind(n,9202))},"@site/versioned_docs/version-2021sp/lecture9.md",9202],b7d293ee:[function(){return n.e(2141).then(n.bind(n,9376))},"@site/versioned_docs/version-2024sp/lecture7.md",9376],b84c401c:[function(){return n.e(192).then(n.bind(n,1696))},"@site/versioned_docs/version-2022fa/lecture5.md",1696],bb5b1104:[function(){return n.e(4318).then(n.bind(n,4786))},"@site/versioned_docs/version-2022sp/assignment3.md",4786],bccda9ab:[function(){return n.e(4204).then(n.bind(n,7279))},"@site/versioned_docs/version-2022sp/assignment1.md",7279],bf3acc8f:[function(){return n.e(800).then(n.bind(n,7986))},"@site/versioned_docs/version-2024fa/assignment4.md",7986],c0179e12:[function(){return n.e(6314).then(n.bind(n,8292))},"@site/versioned_docs/version-2024fa/assignment2.md",8292],c1bc302a:[function(){return n.e(2529).then(n.bind(n,5770))},"@site/versioned_docs/version-2021sp/setup-environment.md",5770],c237f4aa:[function(){return n.e(2499).then(n.t.bind(n,4784,19))},"~docs/default/version-2020-sp-metadata-prop-ce4.json",4784],c268139f:[function(){return n.e(2013).then(n.bind(n,8188))},"@site/versioned_docs/version-2022fa/finalproject.md",8188],c2b05852:[function(){return n.e(3834).then(n.bind(n,2505))},"@site/versioned_docs/version-2020fa/lecture2.md",2505],c50c920e:[function(){return n.e(387).then(n.bind(n,4170))},"@site/versioned_docs/version-2021fa/lecture8.md",4170],c5e87426:[function(){return n.e(5777).then(n.bind(n,480))},"@site/versioned_docs/version-2023fa/setup-editor.md",480],c69b0f77:[function(){return n.e(4390).then(n.bind(n,5986))},"@site/versioned_docs/version-2021fa/introduction.md",5986],c6c85278:[function(){return n.e(3350).then(n.bind(n,2752))},"@site/versioned_docs/version-2023fa/unit1.md",2752],ca5dcf79:[function(){return n.e(8206).then(n.bind(n,9135))},"@site/versioned_docs/version-2022sp/lecture5.md",9135],cb073a31:[function(){return n.e(9461).then(n.bind(n,5925))},"@site/versioned_docs/version-2024fa/assignment1.md",5925],cd5829fe:[function(){return n.e(4394).then(n.t.bind(n,1405,19))},"~docs/default/version-2021-sp-metadata-prop-1e9.json",1405],cd83c525:[function(){return n.e(5235).then(n.bind(n,4891))},"@site/versioned_docs/version-2023sp/introduction.md",4891],ce43e1ab:[function(){return n.e(3991).then(n.bind(n,9469))},"@site/versioned_docs/version-2022fa/assignment2.md",9469],ceaa4c24:[function(){return n.e(365).then(n.bind(n,4090))},"@site/versioned_docs/version-2020fa/assignment5.md",4090],cf8cc687:[function(){return n.e(1307).then(n.bind(n,5741))},"@site/versioned_docs/version-2021sp/lecture3.md",5741],d37109ed:[function(){return n.e(1430).then(n.bind(n,6125))},"@site/versioned_docs/version-2023sp/lecture3.md",6125],d48e768d:[function(){return n.e(4837).then(n.bind(n,8659))},"@site/versioned_docs/version-2024fa/assignment3.md",8659],d4a0a680:[function(){return n.e(8945).then(n.bind(n,4511))},"@site/versioned_docs/version-2024fa/finalproject.md",4511],d50786d6:[function(){return Promise.all([n.e(532),n.e(9558),n.e(3847)]).then(n.bind(n,123))},"@site/versioned_docs/version-2020fa/lecture10.md",123],d53926b7:[function(){return n.e(7536).then(n.bind(n,7203))},"@site/versioned_docs/version-2021fa/finalproject.md",7203],d75a6d43:[function(){return n.e(1235).then(n.bind(n,3132))},"@site/versioned_docs/version-2020fa/introduction.md",3132],d7dd9adb:[function(){return n.e(8956).then(n.bind(n,4794))},"@site/versioned_docs/version-2023sp/lecture1.md",4794],d88cf764:[function(){return n.e(1664).then(n.t.bind(n,6310,19))},"~docs/default/version-2021-fa-metadata-prop-ad3.json",6310],d8bcf37c:[function(){return n.e(710).then(n.bind(n,7367))},"@site/versioned_docs/version-2023fa/introduction.md",7367],d8dbc24c:[function(){return n.e(9411).then(n.bind(n,147))},"@site/versioned_docs/version-2021sp/lecture8.md",147],d93177cc:[function(){return n.e(7415).then(n.bind(n,9448))},"@site/versioned_docs/version-2024sp/setup-environment.md",9448],da118e27:[function(){return n.e(8553).then(n.t.bind(n,5456,19))},"~docs/default/version-2024-sp-metadata-prop-22b.json",5456],dd1ba448:[function(){return n.e(4059).then(n.bind(n,594))},"@site/versioned_docs/version-2023sp/setup-environment.md",594],dd823266:[function(){return n.e(5397).then(n.bind(n,4803))},"@site/versioned_docs/version-2023sp/assignment3.md",4803],de5b8704:[function(){return n.e(1883).then(n.bind(n,2910))},"@site/versioned_docs/version-2022sp/lecture2.md",2910],dfd22331:[function(){return n.e(5458).then(n.bind(n,7103))},"@site/versioned_docs/version-2024fa/setup-environment.md",7103],e1c92344:[function(){return n.e(3066).then(n.bind(n,8518))},"@site/versioned_docs/version-2024sp/assignment4.md",8518],e2da632e:[function(){return n.e(3839).then(n.bind(n,5487))},"@site/versioned_docs/version-2020sp/lecture9.md",5487],e3292145:[function(){return Promise.all([n.e(532),n.e(9558),n.e(4905)]).then(n.bind(n,9273))},"@site/versioned_docs/version-2020sp/lecture10.md",9273],e61e02b7:[function(){return n.e(5886).then(n.t.bind(n,7537,19))},"~docs/default/version-2023-fa-metadata-prop-650.json",7537],e659d385:[function(){return n.e(9807).then(n.bind(n,7146))},"@site/versioned_docs/version-2021fa/assignments.md",7146],e680130f:[function(){return n.e(2064).then(n.bind(n,1759))},"@site/versioned_docs/version-2024sp/unit1.md",1759],e6cfed0b:[function(){return n.e(7047).then(n.bind(n,2961))},"@site/versioned_docs/version-2023sp/finalproject.md",2961],e93d9e53:[function(){return n.e(7181).then(n.bind(n,3178))},"@site/versioned_docs/version-2024sp/introduction.md",3178],eb2864df:[function(){return n.e(1406).then(n.bind(n,815))},"@site/versioned_docs/version-2020fa/lecture9.md",815],eb57aecd:[function(){return n.e(8478).then(n.bind(n,2372))},"@site/versioned_docs/version-2022sp/setup-editor.md",2372],f36f9871:[function(){return n.e(5411).then(n.bind(n,4673))},"@site/versioned_docs/version-2023fa/assignment2.md",4673],f586e6d6:[function(){return n.e(7123).then(n.bind(n,3146))},"@site/versioned_docs/version-2023fa/assignment3.md",3146],f72aea3c:[function(){return n.e(4606).then(n.bind(n,2934))},"@site/versioned_docs/version-2021fa/setup-environment.md",2934],f94d816f:[function(){return n.e(720).then(n.bind(n,2483))},"@site/versioned_docs/version-2021fa/lecture2.md",2483],f96f683d:[function(){return n.e(4934).then(n.bind(n,6731))},"@site/versioned_docs/version-2020fa/assignment4.md",6731],fa4938a4:[function(){return n.e(4362).then(n.bind(n,8329))},"@site/versioned_docs/version-2020fa/assignment2.md",8329],fafed6e2:[function(){return n.e(4807).then(n.bind(n,6367))},"@site/versioned_docs/version-2022fa/setup-editor.md",6367],ffa6c9f2:[function(){return n.e(6338).then(n.bind(n,6775))},"@site/versioned_docs/version-2021fa/lecture5.md",6775]};var d=function(e){var t={};return function e(n,r){Object.keys(n).forEach((function(o){var a=n[o],i=r?r+"."+o:o;"object"===typeof a&&!!a&&Object.keys(a).length?e(a,i):t[i]=a}))}(e),t};var p=function(e,t){if("*"===e)return s()({loading:l,loader:function(){return Promise.all([n.e(532),n.e(9558),n.e(5186),n.e(4608)]).then(n.bind(n,4608))}});var o=c[e+"-"+t],a=[],i=[],p={},f=d(o);return Object.keys(f).forEach((function(e){var t=u[f[e]];t&&(p[e]=t[0],a.push(t[1]),i.push(t[2]))})),s().Map({loading:l,loader:p,modules:a,webpack:function(){return i},render:function(e,t){var n=JSON.parse(JSON.stringify(o));Object.keys(e).forEach((function(t){for(var r=n,o=t.split("."),a=0;a1?t-1:0),r=1;r\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+'

\n

We suggest trying baseUrl =

\n\n'}(e)).replace(/=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},H=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},W=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!1===t?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},V=function(e){var t=X(e,y.TITLE),n=X(e,F);if(n&&t)return n.replace(/%s/g,(function(){return Array.isArray(t)?t.join(""):t}));var r=X(e,L);return t||r||void 0},Z=function(e){return X(e,I)||function(){}},K=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return q({},e,t)}),{})},Y=function(e,t){return t.filter((function(e){return void 0!==e[y.BASE]})).map((function(e){return e[y.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},J=(r=Date.now(),function(e){var t=Date.now();t-r>16?(r=t,e(t)):setTimeout((function(){J(e)}),0)}),ee=function(e){return clearTimeout(e)},te="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||J:n.g.requestAnimationFrame||J,ne="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||ee:n.g.cancelAnimationFrame||ee,re=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},oe=null,ae=function(e,t){var n=e.baseTag,r=e.bodyAttributes,o=e.htmlAttributes,a=e.linkTags,i=e.metaTags,s=e.noscriptTags,l=e.onChangeClientState,c=e.scriptTags,u=e.styleTags,d=e.title,p=e.titleAttributes;le(y.BODY,r),le(y.HTML,o),se(d,p);var f={baseTag:ce(y.BASE,n),linkTags:ce(y.LINK,a),metaTags:ce(y.META,i),noscriptTags:ce(y.NOSCRIPT,s),scriptTags:ce(y.SCRIPT,c),styleTags:ce(y.STYLE,u)},m={},h={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(m[e]=n),r.length&&(h[e]=f[e].oldTags)})),t&&t(),l(e,m,h)},ie=function(e){return Array.isArray(e)?e.join(""):e},se=function(e,t){void 0!==e&&document.title!==e&&(document.title=ie(e)),le(y.TITLE,t)},le=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(B),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),s=0;s=0;d--)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute(B):n.getAttribute(B)!==i.join(",")&&n.setAttribute(B,i.join(","))}},ce=function(e,t){var n=document.head||document.querySelector(y.HEAD),r=n.querySelectorAll(e+"["+"data-react-helmet]"),o=Array.prototype.slice.call(r),a=[],i=void 0;return t&&t.length&&t.forEach((function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===x)n.innerHTML=t.innerHTML;else if(r===k)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var s=void 0===t[r]?"":t[r];n.setAttribute(r,s)}n.setAttribute(B,"true"),o.some((function(e,t){return i=t,n.isEqualNode(e)}))?o.splice(i,1):a.push(n)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),a.forEach((function(e){return n.appendChild(e)})),{oldTags:o,newTags:a}},ue=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},de=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[P[n]||n]=e[n],t}),t)},pe=function(e,t,n){switch(e){case y.TITLE:return{toComponent:function(){return e=t.title,n=t.titleAttributes,(r={key:e})[B]=!0,o=de(n,r),[s.createElement(y.TITLE,o,e)];var e,n,r,o},toString:function(){return function(e,t,n,r){var o=ue(n),a=ie(t);return o?"<"+e+' data-react-helmet="true" '+o+">"+W(a,r)+"":"<"+e+' data-react-helmet="true">'+W(a,r)+""}(e,t.title,t.titleAttributes,n)}};case g:case b:return{toComponent:function(){return de(t)},toString:function(){return ue(t)}};default:return{toComponent:function(){return function(e,t){return t.map((function(t,n){var r,o=((r={key:n})[B]=!0,r);return Object.keys(t).forEach((function(e){var n=P[e]||e;if(n===x||n===k){var r=t.innerHTML||t.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=t[e]})),s.createElement(e,o)}))}(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!(e===x||e===k)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+W(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===M.indexOf(e);return t+"<"+e+' data-react-helmet="true" '+o+(i?"/>":">"+a+"")}),"")}(e,t,n)}}}},fe=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.linkTags,i=e.metaTags,s=e.noscriptTags,l=e.scriptTags,c=e.styleTags,u=e.title,d=void 0===u?"":u,p=e.titleAttributes;return{base:pe(y.BASE,t,r),bodyAttributes:pe(g,n,r),htmlAttributes:pe(b,o,r),link:pe(y.LINK,a,r),meta:pe(y.META,i,r),noscript:pe(y.NOSCRIPT,s,r),script:pe(y.SCRIPT,l,r),style:pe(y.STYLE,c,r),title:pe(y.TITLE,{title:d,titleAttributes:p},r)}},me=d()((function(e){return{baseTag:Y([S,R],e),bodyAttributes:K(g,e),defer:X(e,N),encode:X(e,D),htmlAttributes:K(b,e),linkTags:Q(y.LINK,[A,S],e),metaTags:Q(y.META,[T,w,E,C,_],e),noscriptTags:Q(y.NOSCRIPT,[x],e),onChangeClientState:Z(e),scriptTags:Q(y.SCRIPT,[O,x],e),styleTags:Q(y.STYLE,[k],e),title:V(e),titleAttributes:K(v,e)}}),(function(e){oe&&ne(oe),e.defer?oe=te((function(){ae(e,(function(){oe=null}))})):(ae(e),oe=null)}),fe)((function(){return null})),he=(o=me,i=a=function(e){function t(){return U(this,t),H(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return!f()(this.props,e)},t.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case y.SCRIPT:case y.NOSCRIPT:return{innerHTML:t};case y.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},t.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren,o=e.newChildProps,a=e.nestedChildren;return q({},r,((t={})[n.type]=[].concat(r[n.type]||[],[q({},o,this.mapNestedChildrenToProps(n,a))]),t))},t.prototype.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case y.TITLE:return q({},o,((t={})[r.type]=i,t.titleAttributes=q({},a),t));case y.BODY:return q({},o,{bodyAttributes:q({},a)});case y.HTML:return q({},o,{htmlAttributes:q({},a)})}return q({},o,((n={})[r.type]=q({},a),n))},t.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=q({},t);return Object.keys(e).forEach((function(t){var r;n=q({},n,((r={})[t]=e[t],r))})),n},t.prototype.warnOnInvalidChildren=function(e,t){return!0},t.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return s.Children.forEach(e,(function(e){if(e&&e.props){var o=e.props,a=o.children,i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[j[n]||n]=e[n],t}),t)}(G(o,["children"]));switch(n.warnOnInvalidChildren(e,a),e.type){case y.LINK:case y.META:case y.NOSCRIPT:case y.SCRIPT:case y.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:i,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:i,nestedChildren:a})}}})),t=this.mapArrayTypeChildrenToProps(r,t)},t.prototype.render=function(){var e=this.props,t=e.children,n=G(e,["children"]),r=q({},n);return t&&(r=this.mapChildrenToProps(t,r)),s.createElement(o,r)},$(t,null,[{key:"canUseDOM",set:function(e){o.canUseDOM=e}}]),t}(s.Component),a.propTypes={base:c().object,bodyAttributes:c().object,children:c().oneOfType([c().arrayOf(c().node),c().node]),defaultTitle:c().string,defer:c().bool,encodeSpecialCharacters:c().bool,htmlAttributes:c().object,link:c().arrayOf(c().object),meta:c().arrayOf(c().object),noscript:c().arrayOf(c().object),onChangeClientState:c().func,script:c().arrayOf(c().object),style:c().arrayOf(c().object),title:c().string,titleAttributes:c().object,titleTemplate:c().string},a.defaultProps={defer:!0,encodeSpecialCharacters:!0},a.peek=o.peek,a.rewind=function(){var e=o.rewind();return e||(e=fe({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),e},i);he.renderStatic=he.rewind;var ge=function(e){return s.createElement(he,Object.assign({},e))}},9913:function(e,t,n){"use strict";n.d(t,{_:function(){return o},t:function(){return a}});var r=n(7294),o=r.createContext(!1);function a(e){var t=e.children,n=(0,r.useState)(!1),a=n[0],i=n[1];return(0,r.useEffect)((function(){i(!0)}),[]),r.createElement(o.Provider,{value:a},t)}},5757:function(e,t,n){"use strict";n.d(t,{_:function(){return u},M:function(){return d}});var r=n(7294),o=n(9782),a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"2024fa","label":"2024fa","isLast":true,"path":"/docs","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/assignment1","sidebar":"docs"},{"id":"assignment2","path":"/docs/assignment2","sidebar":"docs"},{"id":"assignment3","path":"/docs/assignment3","sidebar":"docs"},{"id":"assignment4","path":"/docs/assignment4","sidebar":"docs"},{"id":"assignments","path":"/docs/assignments","sidebar":"docs"},{"id":"finalproject","path":"/docs/finalproject","sidebar":"docs"},{"id":"introduction","path":"/docs/introduction","sidebar":"docs"},{"id":"lecture5","path":"/docs/lecture5","sidebar":"docs"},{"id":"lecture6","path":"/docs/lecture6","sidebar":"docs"},{"id":"lecture7","path":"/docs/lecture7","sidebar":"docs"},{"id":"setup-editor","path":"/docs/setup-editor","sidebar":"docs"},{"id":"setup-environment","path":"/docs/setup-environment","sidebar":"docs"},{"id":"unit1","path":"/docs/unit1","sidebar":"docs"},{"id":"unit2","path":"/docs/unit2","sidebar":"docs"}]},{"name":"2024sp","label":"2024sp","isLast":false,"path":"/docs/2024sp","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/2024sp/assignment1","sidebar":"docs"},{"id":"assignment2","path":"/docs/2024sp/assignment2","sidebar":"docs"},{"id":"assignment3","path":"/docs/2024sp/assignment3","sidebar":"docs"},{"id":"assignment4","path":"/docs/2024sp/assignment4","sidebar":"docs"},{"id":"assignments","path":"/docs/2024sp/assignments","sidebar":"docs"},{"id":"finalproject","path":"/docs/2024sp/finalproject","sidebar":"docs"},{"id":"introduction","path":"/docs/2024sp/introduction","sidebar":"docs"},{"id":"lecture5","path":"/docs/2024sp/lecture5","sidebar":"docs"},{"id":"lecture6","path":"/docs/2024sp/lecture6","sidebar":"docs"},{"id":"lecture7","path":"/docs/2024sp/lecture7","sidebar":"docs"},{"id":"lecture8","path":"/docs/2024sp/lecture8","sidebar":"docs"},{"id":"lecture9","path":"/docs/2024sp/lecture9","sidebar":"docs"},{"id":"setup-editor","path":"/docs/2024sp/setup-editor","sidebar":"docs"},{"id":"setup-environment","path":"/docs/2024sp/setup-environment","sidebar":"docs"},{"id":"unit1","path":"/docs/2024sp/unit1","sidebar":"docs"},{"id":"unit2","path":"/docs/2024sp/unit2","sidebar":"docs"}]},{"name":"2023fa","label":"2023fa","isLast":false,"path":"/docs/2023fa","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/2023fa/assignment1","sidebar":"docs"},{"id":"assignment2","path":"/docs/2023fa/assignment2","sidebar":"docs"},{"id":"assignment3","path":"/docs/2023fa/assignment3","sidebar":"docs"},{"id":"assignment4","path":"/docs/2023fa/assignment4","sidebar":"docs"},{"id":"assignments","path":"/docs/2023fa/assignments","sidebar":"docs"},{"id":"finalproject","path":"/docs/2023fa/finalproject","sidebar":"docs"},{"id":"introduction","path":"/docs/2023fa/introduction","sidebar":"docs"},{"id":"lecture5","path":"/docs/2023fa/lecture5","sidebar":"docs"},{"id":"lecture6","path":"/docs/2023fa/lecture6","sidebar":"docs"},{"id":"lecture7","path":"/docs/2023fa/lecture7","sidebar":"docs"},{"id":"lecture8","path":"/docs/2023fa/lecture8","sidebar":"docs"},{"id":"lecture9","path":"/docs/2023fa/lecture9","sidebar":"docs"},{"id":"setup-editor","path":"/docs/2023fa/setup-editor","sidebar":"docs"},{"id":"setup-environment","path":"/docs/2023fa/setup-environment","sidebar":"docs"},{"id":"unit1","path":"/docs/2023fa/unit1","sidebar":"docs"},{"id":"unit2","path":"/docs/2023fa/unit2","sidebar":"docs"}]},{"name":"2023sp","label":"2023sp","isLast":false,"path":"/docs/2023sp","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/2023sp/assignment1","sidebar":"docs"},{"id":"assignment2","path":"/docs/2023sp/assignment2","sidebar":"docs"},{"id":"assignment3","path":"/docs/2023sp/assignment3","sidebar":"docs"},{"id":"assignment4","path":"/docs/2023sp/assignment4","sidebar":"docs"},{"id":"assignments","path":"/docs/2023sp/assignments","sidebar":"docs"},{"id":"finalproject","path":"/docs/2023sp/finalproject","sidebar":"docs"},{"id":"introduction","path":"/docs/2023sp/introduction","sidebar":"docs"},{"id":"lecture1","path":"/docs/2023sp/lecture1","sidebar":"docs"},{"id":"lecture10","path":"/docs/2023sp/lecture10"},{"id":"lecture2","path":"/docs/2023sp/lecture2","sidebar":"docs"},{"id":"lecture3","path":"/docs/2023sp/lecture3","sidebar":"docs"},{"id":"lecture4","path":"/docs/2023sp/lecture4","sidebar":"docs"},{"id":"lecture5","path":"/docs/2023sp/lecture5","sidebar":"docs"},{"id":"lecture6","path":"/docs/2023sp/lecture6","sidebar":"docs"},{"id":"lecture7","path":"/docs/2023sp/lecture7","sidebar":"docs"},{"id":"lecture8","path":"/docs/2023sp/lecture8","sidebar":"docs"},{"id":"lecture9","path":"/docs/2023sp/lecture9","sidebar":"docs"},{"id":"setup-editor","path":"/docs/2023sp/setup-editor","sidebar":"docs"},{"id":"setup-environment","path":"/docs/2023sp/setup-environment","sidebar":"docs"}]},{"name":"2022fa","label":"2022fa","isLast":false,"path":"/docs/2022fa","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/2022fa/assignment1","sidebar":"docs"},{"id":"assignment2","path":"/docs/2022fa/assignment2","sidebar":"docs"},{"id":"assignment3","path":"/docs/2022fa/assignment3","sidebar":"docs"},{"id":"assignment4","path":"/docs/2022fa/assignment4","sidebar":"docs"},{"id":"assignments","path":"/docs/2022fa/assignments","sidebar":"docs"},{"id":"finalproject","path":"/docs/2022fa/finalproject","sidebar":"docs"},{"id":"introduction","path":"/docs/2022fa/introduction","sidebar":"docs"},{"id":"lecture1","path":"/docs/2022fa/lecture1","sidebar":"docs"},{"id":"lecture2","path":"/docs/2022fa/lecture2","sidebar":"docs"},{"id":"lecture3","path":"/docs/2022fa/lecture3","sidebar":"docs"},{"id":"lecture4","path":"/docs/2022fa/lecture4","sidebar":"docs"},{"id":"lecture5","path":"/docs/2022fa/lecture5","sidebar":"docs"},{"id":"lecture6","path":"/docs/2022fa/lecture6","sidebar":"docs"},{"id":"lecture7","path":"/docs/2022fa/lecture7","sidebar":"docs"},{"id":"lecture8","path":"/docs/2022fa/lecture8","sidebar":"docs"},{"id":"lecture9","path":"/docs/2022fa/lecture9","sidebar":"docs"},{"id":"setup-editor","path":"/docs/2022fa/setup-editor","sidebar":"docs"},{"id":"setup-environment","path":"/docs/2022fa/setup-environment","sidebar":"docs"}]},{"name":"2022sp","label":"2022sp","isLast":false,"path":"/docs/2022sp","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/2022sp/assignment1","sidebar":"docs"},{"id":"assignment2","path":"/docs/2022sp/assignment2","sidebar":"docs"},{"id":"assignment3","path":"/docs/2022sp/assignment3","sidebar":"docs"},{"id":"assignment4","path":"/docs/2022sp/assignment4","sidebar":"docs"},{"id":"assignments","path":"/docs/2022sp/assignments","sidebar":"docs"},{"id":"finalproject","path":"/docs/2022sp/finalproject","sidebar":"docs"},{"id":"introduction","path":"/docs/2022sp/introduction","sidebar":"docs"},{"id":"lecture1","path":"/docs/2022sp/lecture1","sidebar":"docs"},{"id":"lecture10","path":"/docs/2022sp/lecture10","sidebar":"docs"},{"id":"lecture2","path":"/docs/2022sp/lecture2","sidebar":"docs"},{"id":"lecture3","path":"/docs/2022sp/lecture3","sidebar":"docs"},{"id":"lecture4","path":"/docs/2022sp/lecture4","sidebar":"docs"},{"id":"lecture5","path":"/docs/2022sp/lecture5","sidebar":"docs"},{"id":"lecture6","path":"/docs/2022sp/lecture6","sidebar":"docs"},{"id":"lecture7","path":"/docs/2022sp/lecture7","sidebar":"docs"},{"id":"lecture8","path":"/docs/2022sp/lecture8","sidebar":"docs"},{"id":"lecture9","path":"/docs/2022sp/lecture9","sidebar":"docs"},{"id":"setup-editor","path":"/docs/2022sp/setup-editor","sidebar":"docs"},{"id":"setup-environment","path":"/docs/2022sp/setup-environment","sidebar":"docs"}]},{"name":"2021fa","label":"2021fa","isLast":false,"path":"/docs/2021fa","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/2021fa/assignment1","sidebar":"version-2021fa/docs"},{"id":"assignment2","path":"/docs/2021fa/assignment2","sidebar":"version-2021fa/docs"},{"id":"assignment3","path":"/docs/2021fa/assignment3","sidebar":"version-2021fa/docs"},{"id":"assignment4","path":"/docs/2021fa/assignment4","sidebar":"version-2021fa/docs"},{"id":"assignment5","path":"/docs/2021fa/assignment5","sidebar":"version-2021fa/docs"},{"id":"assignments","path":"/docs/2021fa/assignments","sidebar":"version-2021fa/docs"},{"id":"finalproject","path":"/docs/2021fa/finalproject","sidebar":"version-2021fa/docs"},{"id":"introduction","path":"/docs/2021fa/introduction","sidebar":"version-2021fa/docs"},{"id":"lecture1","path":"/docs/2021fa/lecture1","sidebar":"version-2021fa/docs"},{"id":"lecture10","path":"/docs/2021fa/lecture10","sidebar":"version-2021fa/docs"},{"id":"lecture2","path":"/docs/2021fa/lecture2","sidebar":"version-2021fa/docs"},{"id":"lecture3","path":"/docs/2021fa/lecture3","sidebar":"version-2021fa/docs"},{"id":"lecture4","path":"/docs/2021fa/lecture4","sidebar":"version-2021fa/docs"},{"id":"lecture5","path":"/docs/2021fa/lecture5","sidebar":"version-2021fa/docs"},{"id":"lecture6","path":"/docs/2021fa/lecture6","sidebar":"version-2021fa/docs"},{"id":"lecture7","path":"/docs/2021fa/lecture7","sidebar":"version-2021fa/docs"},{"id":"lecture8","path":"/docs/2021fa/lecture8","sidebar":"version-2021fa/docs"},{"id":"lecture9","path":"/docs/2021fa/lecture9","sidebar":"version-2021fa/docs"},{"id":"setup-editor","path":"/docs/2021fa/setup-editor","sidebar":"version-2021fa/docs"},{"id":"setup-environment","path":"/docs/2021fa/setup-environment","sidebar":"version-2021fa/docs"}]},{"name":"2021sp","label":"2021sp","isLast":false,"path":"/docs/2021sp","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/2021sp/assignment1","sidebar":"docs"},{"id":"assignment2","path":"/docs/2021sp/assignment2","sidebar":"docs"},{"id":"assignment3","path":"/docs/2021sp/assignment3","sidebar":"docs"},{"id":"assignment4","path":"/docs/2021sp/assignment4","sidebar":"docs"},{"id":"assignment5","path":"/docs/2021sp/assignment5","sidebar":"docs"},{"id":"assignments","path":"/docs/2021sp/assignments","sidebar":"docs"},{"id":"finalproject","path":"/docs/2021sp/finalproject","sidebar":"docs"},{"id":"introduction","path":"/docs/2021sp/introduction","sidebar":"docs"},{"id":"lecture1","path":"/docs/2021sp/lecture1","sidebar":"docs"},{"id":"lecture10","path":"/docs/2021sp/lecture10","sidebar":"docs"},{"id":"lecture2","path":"/docs/2021sp/lecture2","sidebar":"docs"},{"id":"lecture3","path":"/docs/2021sp/lecture3","sidebar":"docs"},{"id":"lecture4","path":"/docs/2021sp/lecture4","sidebar":"docs"},{"id":"lecture5","path":"/docs/2021sp/lecture5","sidebar":"docs"},{"id":"lecture6","path":"/docs/2021sp/lecture6","sidebar":"docs"},{"id":"lecture7","path":"/docs/2021sp/lecture7","sidebar":"docs"},{"id":"lecture8","path":"/docs/2021sp/lecture8","sidebar":"docs"},{"id":"lecture9","path":"/docs/2021sp/lecture9","sidebar":"docs"},{"id":"setup-editor","path":"/docs/2021sp/setup-editor","sidebar":"docs"},{"id":"setup-environment","path":"/docs/2021sp/setup-environment","sidebar":"docs"}]},{"name":"2020fa","label":"2020fa","isLast":false,"path":"/docs/2020fa","mainDocId":"introduction","docs":[{"id":"assignment1","path":"/docs/2020fa/assignment1","sidebar":"version-2020fa/docs"},{"id":"assignment2","path":"/docs/2020fa/assignment2","sidebar":"version-2020fa/docs"},{"id":"assignment3","path":"/docs/2020fa/assignment3","sidebar":"version-2020fa/docs"},{"id":"assignment4","path":"/docs/2020fa/assignment4","sidebar":"version-2020fa/docs"},{"id":"assignment5","path":"/docs/2020fa/assignment5","sidebar":"version-2020fa/docs"},{"id":"assignments","path":"/docs/2020fa/assignments","sidebar":"version-2020fa/docs"},{"id":"finalproject","path":"/docs/2020fa/finalproject","sidebar":"version-2020fa/docs"},{"id":"HackOurCampus","path":"/docs/2020fa/HackOurCampus","sidebar":"version-2020fa/docs"},{"id":"introduction","path":"/docs/2020fa/introduction","sidebar":"version-2020fa/docs"},{"id":"lecture0","path":"/docs/2020fa/lecture0","sidebar":"version-2020fa/docs"},{"id":"lecture1","path":"/docs/2020fa/lecture1","sidebar":"version-2020fa/docs"},{"id":"lecture10","path":"/docs/2020fa/lecture10","sidebar":"version-2020fa/docs"},{"id":"lecture2","path":"/docs/2020fa/lecture2","sidebar":"version-2020fa/docs"},{"id":"lecture3","path":"/docs/2020fa/lecture3","sidebar":"version-2020fa/docs"},{"id":"lecture4","path":"/docs/2020fa/lecture4","sidebar":"version-2020fa/docs"},{"id":"lecture5","path":"/docs/2020fa/lecture5","sidebar":"version-2020fa/docs"},{"id":"lecture6","path":"/docs/2020fa/lecture6","sidebar":"version-2020fa/docs"},{"id":"lecture7","path":"/docs/2020fa/lecture7","sidebar":"version-2020fa/docs"},{"id":"lecture8","path":"/docs/2020fa/lecture8","sidebar":"version-2020fa/docs"},{"id":"lecture9","path":"/docs/2020fa/lecture9","sidebar":"version-2020fa/docs"},{"id":"setup-editor","path":"/docs/2020fa/setup-editor","sidebar":"version-2020fa/docs"},{"id":"setup-environment","path":"/docs/2020fa/setup-environment","sidebar":"version-2020fa/docs"}]},{"name":"2020sp","label":"2020sp","isLast":false,"path":"/docs/2020sp","mainDocId":"lecture1","docs":[{"id":"lecture1","path":"/docs/2020sp/lecture1","sidebar":"version-2020sp/docs"},{"id":"lecture10","path":"/docs/2020sp/lecture10","sidebar":"version-2020sp/docs"},{"id":"lecture2","path":"/docs/2020sp/lecture2","sidebar":"version-2020sp/docs"},{"id":"lecture3","path":"/docs/2020sp/lecture3","sidebar":"version-2020sp/docs"},{"id":"lecture4","path":"/docs/2020sp/lecture4","sidebar":"version-2020sp/docs"},{"id":"lecture5","path":"/docs/2020sp/lecture5","sidebar":"version-2020sp/docs"},{"id":"lecture6","path":"/docs/2020sp/lecture6","sidebar":"version-2020sp/docs"},{"id":"lecture7","path":"/docs/2020sp/lecture7","sidebar":"version-2020sp/docs"},{"id":"lecture8","path":"/docs/2020sp/lecture8","sidebar":"version-2020sp/docs"},{"id":"lecture9","path":"/docs/2020sp/lecture9","sidebar":"version-2020sp/docs"}]}]}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr"}}}'),s=n(7529),l=JSON.parse('{"docusaurusVersion":"2.0.0-beta.7","siteVersion":"0.0.1","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.0.0-beta.7"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.0.0-beta.7"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.0.0-beta.7"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.0.0-beta.7"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.0.0-beta.7"}}}'),c={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},u=r.createContext(c);function d(e){var t=e.children;return r.createElement(u.Provider,{value:c},t)}},6291:function(e,t,n){"use strict";var r=n(8790);t.Z=r.H},2263:function(e,t,n){"use strict";var r=n(7294),o=n(5757);t.Z=function(){return(0,r.useContext)(o._)}},2203:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function s(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=s(t),o=s(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},c=n(8776);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function p(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function f(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function h(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=h(e,t,p(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},7418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,a){for(var i,s,l=o(e),c=1;c=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof o)){var _,T=1;if(v){if(!(_=a(k,E,e,b))||_.index>=e.length)break;var C=_.index,A=_.index+_[0].length,O=E;for(O+=S.value.length;C>=O;)O+=(S=S.next).value.length;if(E=O-=S.value.length,S.value instanceof o)continue;for(var R=S;R!==t.tail&&(Od.reach&&(d.reach=D);var I=S.prev;if(L&&(I=l(t,I,L),E+=L.length),c(t,I,T),S=l(t,I,new o(p,g?r.tokenize(P,g):P,y,P)),N&&l(t,S,N),T>1){var F={cause:p+","+m,reach:D};i(e,t,n,S.prev,E,F),d&&F.reach>d.reach&&(d.reach=F.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o"+a.content+""},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l=0&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function c(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,l(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=l(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=s(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,s=a.indexOf(o);if(-1!==s){++i;var l=a.substring(0,s),d=c(u[o]),f=a.substring(s+o.length),m=[];if(l&&m.push(l),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function a(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var l=i(o);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=i(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}o.content&&"string"!=typeof o.content&&s(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},t.default=o},9901:function(e){e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:function(e,t,n){const r=n(9901),o=n(9642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6726:function(e,t,n){var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},6500:function(e,t,n){var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6500},9642:function(e){"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),m=u;o(m);){for(var h in p={},m){var g=l[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete l[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2703:function(e,t,n){"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:function(e,t,n){e.exports=n(2703)()},414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:function(e,t,n){"use strict";var r=n(7294),o=n(7418),a=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n